首页 > 解决方案 > 在 Google App Engine 上运行 Python37 的问题

问题描述

我知道这个问题已经在某个方面被问过,但是我已经阅读了此处显示的内容,但我仍然没有看到我的问题出在哪里,因为我仍然无法在 Python37 环境中发布我的 Django 2.1.1 应用程序谷歌应用引擎:

App Engine Standard 上的 Python 3 Django:应用程序无法启动

总的来说,我正在尝试使用以下方法发布一个简单的应用引擎应用:

gcloud app deploy

我的应用程序在本地工作,但是当我发布时,它没有问题地通过,但我很烦人:

500 服务器错误消息

当我查看 Google 中的日志时,我得到了与许多其他人一样的错误:

ModuleNotFoundError:没有名为“主”的模块

这是我的相关目录结构

项目门户

我的 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

标签: pythondjangogoogle-app-enginepython-3.7

解决方案


如果没有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


推荐阅读