`gcloud app deploy` выдает` No module с именем 'main'`, когда я перемещаю свой основной файл Python Flask в модуль - PullRequest
0 голосов
/ 02 декабря 2018

У меня есть очень простое приложение Flask, состоящее из одного файла, main.py.

from flask import Flask
app = Flask(__name__)
@app.route('/')
def index():
    return "Hello world."

У меня также есть еще один файл в каталоге проекта, app.yaml, который состоит из одногострока:

runtime: python37

Если я запускаю gcloud app deploy во время этого или флеш-запуска, страница корректно отображается как в облаке Google, так и локально, отображая страницу с надписью «Hello world».

Однако, если я переместлю main.py на ./app/__init__.py, gcloud app deploy больше не будет отображать страницу (даже если flask run по-прежнему функционирует правильно!), Выдавая ошибку 502 Bad Gateway.В журнале выдается ошибка:

File "/env/lib/python3.7/site-packages/gunicorn/util.py", line 350, in import_app
__import__(module)
ModuleNotFoundError: No module named 'main'"  

Есть идеи, в чем тут проблема?

1 Ответ

0 голосов
/ 02 декабря 2018

Если вы не определили entrypoint в своем файле YAML, App Engine настроит и запустит веб-сервер Gunicorn.

Конфигурация по умолчанию, предоставляемая GCloud:

gunicorn -b :$PORT main:app

Поэтому вам необходимо настроить поле entrypoint , если ваша точка входа не main.py

...