在 Google App Engine 上托管网站 | 502 错误网关 | Worker 启动失败(记录器)

Hosting website on Google App Engine | 502 Bad Gateway | Worker failed to boot (logger)

我正在关注 this guide 在 GAE 上托管一个静态网站。屏幕截图是我的文件夹结构,其中 'formicidae' 是我项目的根目录,'www' 包含一些 HTML、CSS、JS 和图像文件。

使用 gcloud app deploy 部署没问题,但是当我想使用 gcloud app browse.

浏览我的应用程序时,出现 502 bad gateway nginx 错误

检查记录器,我收到了一个 ModuleNotFoundError: No module named 'main' 错误,所以我在我的 app.yaml 中添加了一个新的入口点,看起来像 entrypoint: gunicorn -b :$PORT formicidae.wsgi --timeout 120(也延长了超时)。

这没有解决问题,所以我添加了一个带有 from formicidae import app 的虚拟 main.py 脚本,但在我的记录器中收到错误 ModuleNotFoundError: No module named 'formicidae'

我将其更改为 from www import app 但收到 ImportError: cannot import name 'app' from 'www' (unknown location)

我不确定我使用这些解决方案之一是否正确,应该用其他东西替换 'formicidae' 或 'www',或者是否有完全不同的解决方案.

这是完整的记录器输出,向我展示了没有名为 'main'

的模块的原始错误
Traceback (most recent call last): File "/env/lib/python3.7/site-packages/gunicorn/arbiter.py", line 583, in spawn_worker worker.init_process() File "/env/lib/python3.7/site-packages/gunicorn/workers/gthread.py", line 104, in init_process super(ThreadWorker, self).init_process() File "/env/lib/python3.7/site-packages/gunicorn/workers/base.py", line 129, in init_process self.load_wsgi() File "/env/lib/python3.7/site-packages/gunicorn/workers/base.py", line 138, in load_wsgi self.wsgi = self.app.wsgi() File "/env/lib/python3.7/site-packages/gunicorn/app/base.py", line 67, in wsgi self.callable = self.load() File "/env/lib/python3.7/site-packages/gunicorn/app/wsgiapp.py", line 52, in load return self.load_wsgiapp() File "/env/lib/python3.7/site-packages/gunicorn/app/wsgiapp.py", line 41, in load_wsgiapp return util.import_app(self.app_uri) File "/env/lib/python3.7/site-packages/gunicorn/util.py", line 350, in import_app __import__(module) ModuleNotFoundError: No module named 'main'

编辑:添加了 app.yaml 内容的截图

根据 strack 跟踪,请注意您使用的是 Python 3.7,而您共享的 documentation 适用于 Python 2.7。请相应地调整您的 app.yaml 文件。

以下 documentation 将帮助您迁移到 Python 3 标准运行时。

请注意,使用 Python 3 运行时时,您的应用程序将使用 Django 或 Flask 等网络框架来路由请求。到目前为止,Python 2 曾经通过在 app.yaml 文件中定义 URL 处理程序来执行此操作。