Google App Engine 没有为我在 app.yaml 中定义的入口点提供服务
Google App Engine is not servig my defined entrypoint in app.yaml
Google App Engine 不会在 python37 运行时提供我定义的入口点。 GAE 仍然尝试提供 main.py
文件。
项目结构
/backend/__init__.py
/backend/views.py
/backend/models.py
app.yaml
app.yaml
service: backend
runtime: python37
entrypoint: gunicorn -b :$PORT backend:app
handlers:
- url: /.*
script: auto
secure: always
redirect_http_response_code: 301
/backend/init.py
from flask import Flask
...
app = Flask(__name__)
...
import backend.models
import backend.views
if __name__ == '__main__':
app.run()
GAE 错误信息
File "<frozen importlib._bootstrap>", line 965, in _find_and_load_unlocked: ModuleNotFoundError: No module named 'main'
您需要配置 gunicorn 以查看您的 init.py
所在的目录。有两种方法可以在您的入口点执行此操作:
entrypoint: gunicorn -b :$PORT --chdir backend init:app
或
entrypoint: gunicorn -b :$PORT backend.init:app
如果您在 app.yaml
文件中使用 gunicorn
指定自定义 entrypoint
,则必须在 requirements.txt
中安装 gunicorn
。这对我有用并解决了这个问题!
Google App Engine 不会在 python37 运行时提供我定义的入口点。 GAE 仍然尝试提供 main.py
文件。
项目结构
/backend/__init__.py
/backend/views.py
/backend/models.py
app.yaml
app.yaml
service: backend
runtime: python37
entrypoint: gunicorn -b :$PORT backend:app
handlers:
- url: /.*
script: auto
secure: always
redirect_http_response_code: 301
/backend/init.py
from flask import Flask
...
app = Flask(__name__)
...
import backend.models
import backend.views
if __name__ == '__main__':
app.run()
GAE 错误信息
File "<frozen importlib._bootstrap>", line 965, in _find_and_load_unlocked: ModuleNotFoundError: No module named 'main'
您需要配置 gunicorn 以查看您的 init.py
所在的目录。有两种方法可以在您的入口点执行此操作:
entrypoint: gunicorn -b :$PORT --chdir backend init:app
或
entrypoint: gunicorn -b :$PORT backend.init:app
如果您在 app.yaml
文件中使用 gunicorn
指定自定义 entrypoint
,则必须在 requirements.txt
中安装 gunicorn
。这对我有用并解决了这个问题!