Проблема развертывания Google App Engine - основное приложение не найдено
Я пытаюсь развернуть свое приложение с помощью Google App Engine. Я отредактировал app.yaml, чтобы отразить гибкую среду, а также предоставил всю информацию о приложении. Ниже приведен файл app.yaml.
runtime: python
env: flex
entrypoint: gunicorn -b :$PORT main:app
runtime_config:
python_version: 3
После развертывания я получаю следующую ошибку
[2018-08-24 06:57:14 +0000] [1] [INFO] Starting gunicorn 19.7.1
[2018-08-24 06:57:14 +0000] [1] [INFO] Listening at: http://0.0.0.0:8080 (1)
[2018-08-24 06:57:14 +0000] [1] [INFO] Using worker: sync
[2018-08-24 06:57:14 +0000] [7] [INFO] Booting worker with pid: 7
App Deployed
Failed to find application: 'main'
[2018-08-24 06:57:14 +0000] [7] [INFO] Worker exiting (pid: 7)
[2018-08-24 06:57:14 +0000] [1] [INFO] Shutting down: Master
[2018-08-24 06:57:14 +0000] [1] [INFO] Reason: App failed to load.
Обратите внимание, что App Deployed - это строка в моем заявлении на печать. Это выполняется. Но развертывание становится неудачным
заранее спасибо
4 ответа
В вашем app.yaml
начинаешь гантикорн с gunicorn -b :$PORT main:app
, Это говорит ему искать объект app
в файле main.py
Ошибка, которую вы получаете, происходит от Gunicorn и возникает, когда у вас есть main.py
файл, но он не имеет app
объект в этом.
Вы, вероятно, хотите настроить приложение Flask следующим образом:
from flask import Flask
app = Flask(__name__)
См. Полный пример приложения здесь: https://cloud.google.com/appengine/docs/flexible/python/quickstart
У меня была такая же проблема.
Failed to find application: 'main'
Причиной в моем случае было то, что у меня был также каталог main
в корневой директории проекта.
drwxr-xr-x 2 user staff 64 Nov 30 10:12 main
-rw-r--r-- 1 user staff 1178 Nov 29 20:58 main.py
Я думаю, что Gunicorn запутался. Решение (работало для меня): переименовать main
каталог.
PS Просто не переименовывайте его в code
каталог. Это вызовет еще одну проблему с отладкой в PyCharm.:)
Моя структура папок выглядит так:
main.py
не в
root
каталог, как я могу указать это в
app.yaml
файл.
/app
|__main.py
app.yaml
Поскольку я новичок в GCP, я не смог решить эту проблему быстро. Это моя проблема в том, что я не использовал Flask для достижения цели, и как только я использовал Flask, он работает.
Спасибо