Google App Engine: нет модуля с именем setup

Я новичок в GAE, и во время прохождения курса мне нужно было установить его в свою систему. Я следовал инструкциям на веб-сайте GAE, и он успешно установился в моей системе Ubuntu 17.04. Теперь я создал папку с именем first-app с файлами first-app.py и app.yaml.

Всякий раз, когда я пытаюсь запустить dev_appserver.py first-app, я получаю следующую ошибку:

Traceback (most recent call last):
  File "/usr/bin/dev_appserver.py", line 11, in <module>
    import bootstrapping.bootstrapping as bootstrapping
  File "/usr/lib/google-cloud-sdk/bin/bootstrapping/bootstrapping.py", line 9, in <module>
    import setup
ModuleNotFoundError: No module named 'setup'

У меня установлены как Python 2.7, так и Python 3.5, а Python по умолчанию — 2.7.13.

Ниже приведено содержание first-app.py:

import webapp2

class Mainpage(webapp2.RequestHandler):
    def get(self):
        self.response.write("Hello World")

app=webapp2.WSGIApplication([('/', Mainpage), ], debug=True)

и содержимое файла app.yaml:

runtime: python
api_version: 1
threadsafe: true

handlers:
- url: /
  script: first-app.app

- url: /index\.html
  script: home.app

Что я должен сделать, чтобы заставить его работать?


comment
не могли бы вы положить сюда app.yaml   -  person montss    schedule 25.02.2018
comment
Я уже выкладывал в вопросе содержимое app.yaml.   -  person Akshat Gupta    schedule 25.02.2018


Ответы (1)


Похоже, вы каким-то образом запускаете его с помощью python 3, см.:

В дополнение к поиску ответов на эти вопросы, я думаю, вы также можете попробовать явно выбрать версию Python, например:

python2.7 /usr/bin/dev_appserver.py [first-app ...]

Более «постоянная» альтернатива, которая не потребует от вас выполнения вышеуказанного для каждого вызова, состоит в том, чтобы изменить (как root) /usr/bin/dev_appserver.py и заменить #!/usr/bin/env python вверху на #!/usr/bin/env python2.7. С этим изменением он должен работать нормально, если в вашей системе установлена ​​действующая версия Python 2.7, даже если она не установлена ​​по умолчанию.

Это может показаться хакерским, но, учитывая, что dev_appserver.py можно использовать только со стандартными приложениями env GAE, которые поддерживают только python 2.7, ИМХО, это довольно естественно - Google мог бы сделать это в этом конкретном случае. Но поскольку они этого не сделали, просто не забудьте повторить это, когда это необходимо, поскольку обновления SDK, вероятно, сотрут его.

person Dan Cornilescu    schedule 25.02.2018
comment
Ух ты! Это только что сработало, и теперь сервер работает по адресу localhost:8000. Но теперь новая проблема заключается в том, что когда я открываю эту ссылку в браузере, она перенаправляет на ссылку, которая открывает страницу Google страница ядра приложения, на которой показаны экземпляры. - person Akshat Gupta; 25.02.2018
comment
Виноват! Я открывал сервер администратора. Теперь он работает нормально. Но я хотел знать, нужно ли мне каждый раз вводить python2.7? - person Akshat Gupta; 25.02.2018