【发布时间】:2020-04-07 15:31:26
【问题描述】:
我正在关注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 内容的屏幕截图
【问题讨论】:
-
请添加您的
app.yaml的内容 -
根据 strack 跟踪,请注意您使用的是 Python 3.7,而您共享的 documentation 用于 Python 2.7。您是否使用任何 Web 框架,例如 Django 或 Flask?大多数 Web 应用程序使用 WSGI 服务器,例如 Gunicorn、uWSGI 或 Waitress。我鼓励你看看下面的documentation。乍一看,您在启动应用程序时可能缺少一些依赖项。
-
另外,请发布您的
app.yaml文件内容。随时通知我! -
感谢大家的 cmets - 正如您提到的 @sllopis ,我已将我的 app.yaml 内容调整为 python 2.7 并且它有效(添加了屏幕截图)。我现在的问题已经完全转移到如何让它与 Python 3.7 一起使用,但这可能需要发布一个全新的问题。
-
对于这个应用程序,我没有使用 Django 或 Flask。在网站托管和将前端触发器集成到后端活动中,是否有一个更可取/更容易使用?
标签: google-app-engine web-testing bad-gateway