错误:打开 Google App Engine Python 域时出现错误网关 502

shr*_*rey 5 google-app-engine python-3.x gcloud

当我访问我的网站 ( https://osm-messaging-platform.appspot.com ) 时,我在主网页上收到此错误:

502 Bad Gateway. nginx/1.14.0 (Ubuntu).
Run Code Online (Sandbox Code Playgroud)

这真的很奇怪,因为当我在本地运行时

python app.py
Run Code Online (Sandbox Code Playgroud)

我没有收到任何错误,我的应用程序和网站加载正常。

我已经尝试过查找它,但是我在堆栈溢出中找到的大多数答案要么没有错误,要么与我无关。这是我查看 GCloud 日志时的错误:

019-02-07 02:07:05 default[20190206t175104]  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'
2019-02-07 02:07:05 default[20190206t175104]  [2019-02-07 02:07:05 
+0000] [25] [INFO] Worker exiting (pid: 25)
2019-02-07 02:07:05 default[20190206t175104]  [2019-02-07 02:07:05 
+0000] [8] [INFO] Shutting down: Master
2019-02-07 02:07:05 default[20190206t175104]  [2019-02-07 02:07:05 
+0000] [8] [INFO] Reason: Worker failed to boot.
Run Code Online (Sandbox Code Playgroud)

这是我的 app.yaml 文件的内容:

runtime: python37

handlers:
 # This configures Google App Engine to serve the files in the app's 
static
 # directory.
 - url: /static
 static_dir: static


- url: /.*
  script: auto
Run Code Online (Sandbox Code Playgroud)

我希望它显示我的网站,但它没有。任何人都可以帮忙吗?

llo*_*les 8

产生该错误的原因是 App Engine 标准 Python37 运行时main.py默认处理文件中的请求。我猜你没有这个文件,你正在处理文件中的请求app.py

日志回溯也指向它: ModuleNotFoundError: No module named 'main'

app.py文件名更改为名称,main.py然后重试。

作为一般规则,建议遵循App Engine 标准文档中的此文件结构:

  • your-app/
    • app.yaml
    • main.py
    • requirements.txt
    • static/
      • script.js
      • style.css
    • templates/
      • index.html


我相信这对您的情况来说有点矫枉过正,但是如果您需要自定义入口点,请阅读他的 Python3 运行时文档以了解有关如何配置它的更多信息。