python - 在 Google App Engine 上运行 Python37 的问题
问题描述
我知道这个问题已经在某个方面被问过,但是我已经阅读了此处显示的内容,但我仍然没有看到我的问题出在哪里,因为我仍然无法在 Python37 环境中发布我的 Django 2.1.1 应用程序谷歌应用引擎:
App Engine Standard 上的 Python 3 Django:应用程序无法启动
总的来说,我正在尝试使用以下方法发布一个简单的应用引擎应用:
gcloud app deploy
我的应用程序在本地工作,但是当我发布时,它没有问题地通过,但我很烦人:
500 服务器错误消息
当我查看 Google 中的日志时,我得到了与许多其他人一样的错误:
ModuleNotFoundError:没有名为“主”的模块
这是我的相关目录结构
项目门户
项目门户
初始化文件
设置.py
网址.py
wsgi.py
主文件
应用程序.yaml
要求.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