我正在按照this guide在GAE上托管一个静态网站。屏幕快照是我的文件夹结构,其中“ formicidae”是项目的根目录,“ www”包含一些HTML,CSS,JS和图像文件。
gcloud app deploy
可以很好地部署,但是当我想用gcloud app browse
浏览我的应用程序时,出现了502错误的网关nginx错误。
[检查记录器,我收到ModuleNotFoundError: No module named 'main'
错误,因此我在app.yaml
中添加了一个新的入口点,看起来像entrypoint: gunicorn -b :$PORT formicidae.wsgi --timeout 120
(也延长了超时时间)。
这不能解决问题,因此我在main.py
中添加了一个虚拟from formicidae import app
脚本,但在记录器中收到错误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处理程序来实现此目的。