在Google App Engine上运行Python37时出现问题

时间:2018-09-24 19:07:25

标签: python django google-app-engine python-3.7

我知道这个问题已经过一些方面了,但是我已经阅读了如下所示的内容,但仍然无法看到问题所在,因为我仍然无法在Django 2.1.1应用中发布Google App Engine中的Python37环境:

Python 3 Django on App Engine Standard: App Fails to Start

总体上,我正在尝试使用以下方法发布一个简单的App Engine应用程序:

gcloud app deploy

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

  
    

500服务器错误消息

  

当我查看Google中的日志时,会遇到与许多其他错误相同的错误:

  
    

ModuleNotFoundError:没有名为“ 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

from requirements.txt

django == 2.1.1

1 个答案:

答案 0 :(得分:3)

如果未定义entrypoint,它将尝试从名为main.py的文件开始。创建一个与app.yaml相同级别的代码,并添加一些简单逻辑:

from project_portal.wsgi import application

编辑:

由于定义了entrypoint,因此似乎是问题所在。因此,请确保您的“ requirements.txt”中包含金枪鱼:

gunicorn==19.9.0

这没有帮助:

尝试更改

entrypoint: gunicorn -b :$PORT project_portal.wsgi

entrypoint: gunicorn -b :$PORT project_portal.wsgi:application