在 Google App Engine 上运行 Python37 的问题

Posted

技术标签:

【中文标题】在 Google App Engine 上运行 Python37 的问题【英文标题】:Issue running Python37 on Google App Engine 【发布时间】:2019-02-28 08:17:56 【问题描述】:

我知道有人问过这个问题,但我已经阅读了此处显示的内容,但我仍然没有看到问题出在哪里,因为我仍然无法在 Django 2.1.1 应用程序中发布Google App Engine 中的 Python37 环境:

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

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

gcloud app deploy

我的应用程序在本地工作,但是当我发布时,它可以顺利通过,但我很烦:

500 服务器错误消息

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

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

这是我的相关目录结构

项目门户

项目门户

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

【问题讨论】:

【参考方案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

【讨论】:

似乎还有更多工作要做。我已经按照你的建议做了,现在我仍然收到 500 错误,但我似乎无法查看日志以了解问题所在。 我假设一些其他的事情已经处理好了,比如有一个名为staticfiles 的目录,以及在你的requirements.txt 中有django? 是的,我只是尝试在我的 app.yaml 中取出静态列表,因为我还没有任何静态文件,我只是想确保我了解如何部署到 GAE。请稍等,我将更新我的 requirements.txt 内容和新的 app.yaml 我仍然遇到问题。如果我保留 main.py,它会运行,但我没有收到找不到“main”的错误通知。如果我像我们讨论的那样删除 main.py 并更改入口点,我会遇到相同的“找不到 main”问题 确保您的requirements.txt 中有gunicorn:gunicorn==19.9.0

以上是关于在 Google App Engine 上运行 Python37 的问题的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Google Cloud App Engine 上运行 PHP 服务

在 Google App Engine 上运行 Python37 的问题

在 Google App Engine 上按计划运行 python 脚本

Python 中 Google App Engine 的 dev_appserver.py 中出现 EOFError 错误

在 Google-App-Engine 中使用 HSQLDB

在 Google App Engine 上部署 create-react-app