在谷歌应用引擎中部署Flask应用,结果是 "gunicorn:错误。 没有指定应用模块"。No application module specified."

问题描述 投票:0回答:1

为了让这个应用能正常工作,我的头都快砸到桌子上了。我试图通过Google App Engine在gunicorn上部署一个简单的Flask应用。当访问该应用时,我得到了错误500,并在 "gunicorn: error: No application module specified. "在日志中。

我的布局大致是这样的。

Main_Directory/
|-MyApp/
|   |-__init__.py <- Containing majority of code
|   |-templates/
|   |-static/
|-app.yaml
|-main.py 
|-requirements.txt

main.py 简单地从以下地方导入应用程序 MyApp 并实例化一个名为 "app "的新实例。

requirements.txt 拥有所有的依赖关系,包括gunicorn。

app.yaml完全如下。

runtime: python37
instance_class: F1
default_expiration: "4d 12h"
entrypoint: gunicorn -b :$PORT -w 1

env_variables:
  BUCKET_NAME: "bucket_name"

handlers:
- url: /.*
  script: auto

我试着在gunicorn中创建另一个app. MyApp 文件夹,并添加服务。"default",但这也没用 我在这里几乎没有办法了。我很确定这个问题是因为主应用程序的代码被定义在了 MyApp而不是直接在下面 Main_directory. 我很欣赏简单的解决方案将是把所有的东西从。MyApp 文件夹,但我犹豫不决,因为这样做会扰乱我的 Git。我想创建main.py,然后直接实例化为 MyApp/__init__.py 将做的伎俩,但不完全似乎。

任何和所有的想法感谢。

python-3.x google-app-engine flask gunicorn
1个回答
0
投票

如果你想使用gunicorn作为你的HTTP服务器,你需要告诉它你的WSGI应用在哪里。这可能是一个 app 在你 main.py 文件,所以你可以使用。

entrypoint: gunicorn -b :$PORT -w 1 main:app

0
投票

就像通常的情况一样,在达到我的极限并提出一个问题后,我找到了一个答案... ...

我把入口点从 app.yaml 并将枪角从 requirements.txt. 在重新部署应用时,现在可以用了。

我感觉这不是修复,而是变通。我还是不明白为什么以前不能用。一定有更好的解决方案,将gunicorn作为一个需求来维护。我估计是yaml出了问题。

© www.soinside.com 2019 - 2024. All rights reserved.