Google App Engine httplib2 импорт Http приводит к синтаксической ошибке - PullRequest
0 голосов
/ 14 октября 2018

Нужна помощь с Google App Engine.Ниже приведена оскорбительная часть моего кода:

from __future__ import print_function
import webapp2
import jinja2
import csv
import os
from collections import namedtuple
from httplib2 import Http
from googleapiclient.discovery import build
from oauth2client import file, client, tools
import datetime
##code to do stuff

Проблема, с которой я сталкиваюсь, связана со строкой «из httplib2 import Http».Я получаю следующую ошибку:

Traceback (most recent call last):
  File "/base/alloc/tmpfs/dynamic_runtimes/python27g/c3b7fd7c606f3aa7/python27/python27_lib/versions/1/google/appengine/runtime/wsgi.py", line 240, in Handle
    handler = _config_handle.add_wsgi_middleware(self._LoadHandler())
  File "/base/alloc/tmpfs/dynamic_runtimes/python27g/c3b7fd7c606f3aa7/python27/python27_lib/versions/1/google/appengine/runtime/wsgi.py", line 299, in _LoadHandler
    handler, path, err = LoadObject(self._handler)
  File "/base/alloc/tmpfs/dynamic_runtimes/python27g/c3b7fd7c606f3aa7/python27/python27_lib/versions/1/google/appengine/runtime/wsgi.py", line 85, in LoadObject
    obj = __import__(path[0])
  File "/base/data/home/apps/k~fraseline2019/20181014t160622.413269158822473824/main.py", line 10, in <module>
    from httplib2 import Http
  File "/base/data/home/apps/k~fraseline2019/20181014t160622.413269158822473824/lib/httplib2/__init__.py", line 382
    print('%s:' % h, end=' ', file=self._fp)
                        ^
SyntaxError: invalid syntax

У меня есть файлы модуля httplib2 в каталоге моего приложения.Я гуглил, но, похоже, никто не сталкивался с этой проблемой - может кто-нибудь помочь?

СПАСИБО!

1 Ответ

0 голосов
/ 14 октября 2018

Пожалуйста, прочитайте о MCVEs .Может показаться, что MCVE для этой проблемы - одна строка:

из httplib2 import Http

Я считаю, что ваша проблема в том, что вашему модулю httplib2 не хватает необходимого будущего импорта.

from __future__ import print_function

Будущий импорт применяется только к модулю, в котором они появляются.Без него, в 2.7, вы получите трассировку, которую вы получили.

>>> print(1, 2, end='')
  File "<stdin>", line 1
    print(1, 2, end='')
                   ^
SyntaxError: invalid syntax
...