Стандарт Google App Engine dev_appserver.py выдает ошибку импорта

Я пытаюсь запустить dev_appserver.py в этом приложении Google. Образец стандартной колбы двигателя

Как говорится в инструкции, я запускаю:

pip install -t lib -r requirements.txt
dev_appserver.py app.yaml

Я должен быть в состоянии перейти к http://localhost:8080/form, но я получаю ImportError: No module named msvcrt.

Я обнаружил, что использование Flask==0.10.1 и Werkzeug==0.12.2 работает, но ничего нового.

Версии:

OS: Windows 10 Pro

Python 2.7.14

Google Cloud SDK 182.0.0
app-engine-go
app-engine-python 1.9.63
app-engine-python-extras 1.9.63
bq 2.0.27
core 2017.12.01
gsutil 4.28

person Karl Stulik    schedule 13.12.2017    source источник
comment
Подобных проблем довольно много, обычно проблема заключается в том, что Flask или одна из его зависимостей добавили некоторый код, который песочница App Engine не разрешает. Если вам не нужна функция в более поздней версии Flask, возможно, вам лучше придерживаться версий, которые, по вашему мнению, работают. См. также stackoverflow.com/a/25915535/5320906, stackoverflow.com/a/47738001/5320906 и, возможно, stackoverflow.com/a/41531133/5320906 .   -  person snakecharmerb    schedule 13.12.2017


Ответы (1)


Я сам попробовал этот пример из Cloud Shell, и я также обнаружил некоторые проблемы с импортом. Похоже, что более новые выпуски Werkzeug перенесли код в разные места, поэтому, как было предложено в этом недавнем посте, если вы хотите использовать пример как есть, вам лучше работать с версией 0.12.2 Werkzeug.

Для этого я рекомендую вам следующие шаги:

  1. Удалите файл lib в каталоге приложения и все его содержимое.
  2. Отредактируйте файл requirements.txt следующим образом:

требования.txt:

Flask==0.12.2
werkzeug==0.12.2
  1. Запустите еще раз команду pip install -t lib -r requirements.txt.

Теперь вы можете попробовать запустить приложение локально с расширением dev_appserver. Убедитесь, что файл appengine_config.py указывает на правильное расположение папки lib, в которую устанавливаются библиотеки.

После того, как вы все это сделали, все должно работать нормально. Я попытался просмотреть URL-адрес локального хоста, который вы упомянули, и появилась простая HTML-страница с формой.

person dsesto    schedule 13.12.2017