在 Google App Engine 上发布 运行 Python37
Issue running Python37 on Google App Engine
我知道有人在某个方面问过这个问题,但我已经阅读了此处所示的资料,但我仍然没有看到我的问题出在哪里,因为我仍然无法发布我的 Django 2.1.1 应用程序在 Python37 App Engine 中的 Python37 环境中:
总的来说,我试图做的是使用以下方法发布一个简单的应用引擎应用程序:
gcloud app deploy
我的应用程序在本地运行,但当我发布时,它顺利通过,但我遇到了烦人的事情:
500 Server Error message
当我查看 Google 中的日志时,我得到了与许多其他人得到的相同的错误:
ModuleNotFoundError: No module named 'main'
这里是我的相关目录结构
project_portal
project_portal
init.py
settings.py
urls.py
wsgi.py
main.py
app.yaml
requirements.txt
我的app.yaml文件
runtime: python37
entrypoint: gunicorn -b :$PORT project_portal.wsgi
env: standard
handlers:
- url: .*
secure: always
redirect_http_response_code: 301
script: project_portal.wsgi.application
我的project_portal/wsgi.py文件
import os
from django.core.wsgi import get_wsgi_application
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'project_portal.settings')
application = get_wsgi_application()
来自项目根目录中的 main.py
from project_portal.wsgi import application
从requirements.txt
django == 2.1.1
如果没有定义 entrypoint
,它将尝试从名为 main.py
的文件开始。创建一个,与 app.yaml
处于同一级别,其中包含一些简单的逻辑:
from project_portal.wsgi import application
编辑:
由于您定义了 entrypoint
,看来这就是问题所在。因此,请确保您的 'requirements.txt' 中有 gunicorn:
gunicorn==19.9.0
这没有帮助:
尝试更改
entrypoint: gunicorn -b :$PORT project_portal.wsgi
到
entrypoint: gunicorn -b :$PORT project_portal.wsgi:application
我知道有人在某个方面问过这个问题,但我已经阅读了此处所示的资料,但我仍然没有看到我的问题出在哪里,因为我仍然无法发布我的 Django 2.1.1 应用程序在 Python37 App Engine 中的 Python37 环境中:
总的来说,我试图做的是使用以下方法发布一个简单的应用引擎应用程序:
gcloud app deploy
我的应用程序在本地运行,但当我发布时,它顺利通过,但我遇到了烦人的事情:
500 Server Error message
当我查看 Google 中的日志时,我得到了与许多其他人得到的相同的错误:
ModuleNotFoundError: No module named 'main'
这里是我的相关目录结构
project_portal
project_portal
init.py
settings.py
urls.py
wsgi.py
main.py
app.yaml
requirements.txt
我的app.yaml文件
runtime: python37
entrypoint: gunicorn -b :$PORT project_portal.wsgi
env: standard
handlers:
- url: .*
secure: always
redirect_http_response_code: 301
script: project_portal.wsgi.application
我的project_portal/wsgi.py文件
import os
from django.core.wsgi import get_wsgi_application
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'project_portal.settings')
application = get_wsgi_application()
来自项目根目录中的 main.py
from project_portal.wsgi import application
从requirements.txt
django == 2.1.1
如果没有定义 entrypoint
,它将尝试从名为 main.py
的文件开始。创建一个,与 app.yaml
处于同一级别,其中包含一些简单的逻辑:
from project_portal.wsgi import application
编辑:
由于您定义了 entrypoint
,看来这就是问题所在。因此,请确保您的 'requirements.txt' 中有 gunicorn:
gunicorn==19.9.0
这没有帮助:
尝试更改
entrypoint: gunicorn -b :$PORT project_portal.wsgi
到
entrypoint: gunicorn -b :$PORT project_portal.wsgi:application