【问题标题】:Google App Engine is not servig my defined entrypoint in app.yamlGoogle App Engine 不为我在 app.yaml 中定义的入口点提供服务
【发布时间】:2021-01-31 02:03:55
【问题描述】:

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没有安装,能不能也分享一下你的requirements.txt?

标签: python google-app-engine flask gunicorn


【解决方案1】:

如果您在app.yaml 文件中使用gunicorn 指定自定义entrypoint,则必须在requirements.txt 中安装gunicorn。这对我有用并解决了这个问题!

【讨论】:

    【解决方案2】:

    你需要配置gunicorn来查看你的init.py所在的目录。有两种方法可以在您的入口点上执行此操作:

    entrypoint: gunicorn -b :$PORT --chdir backend init:app 
    

    entrypoint: gunicorn -b :$PORT backend.init:app 
    

    【讨论】:

      猜你喜欢
      • 2021-10-14
      • 2020-12-19
      • 2021-07-31
      • 1970-01-01
      • 1970-01-01
      • 2022-06-23
      • 1970-01-01
      • 1970-01-01
      • 2017-09-07
      相关资源
      最近更新 更多