Google App Engine httplib2 импорт Http приводит к синтаксической ошибке

1

Ищите некоторую помощь в 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 в каталоге приложения. Я гулял, но никто, кажется, не имел этой проблемы, может кто-то может помочь?

БЛАГОДАРЮ ВАС!

Теги:
google-app-engine
httplib2

1 ответ

1
Лучший ответ

Пожалуйста, прочитайте о MCVE. Похоже, что 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
  • 0
    Честный комментарий о MCVE - я постараюсь быть более кратким в будущем. Спасибо!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню