在Heroku上部署Flask应用时出现错误:在'app'中未找到属性'app'。

3
我正在尝试在Heroku上部署我非常简单的Flask应用程序,但是当我尝试访问我的Heroku应用程序时,它给了我这个错误:An error occurred in the application and your page could not be served. If you are the application owner, check your logs for details. 我从终端检查了日志,它说:Failed to find attribute 'app' in 'app'
from flask import Flask

app = Flask(__name__)

@app.route('/')
def index():
    return "VatsalayKhobragade.me"

项目结构

*

概述

web: gunicorn app:app

Requirements.txt

click==7.1.2
Flask==1.1.2
gunicorn==20.0.4
itsdangerous==1.1.0
Jinja2==2.11.2
MarkupSafe==1.1.1
Werkzeug==1.0.1

请帮我看看,我这里做错了什么?

3个回答

10

可能可以通过procfile解决:

web: gunicorn app.app:app


虽然为了更清晰,您可能希望将顶层app文件夹重命名为其他名称,然后有:

web: gunicorn something.app:app

或者创建一个something/__init__.py文件,其中包含以下内容:

from .app import app

然后只需使用procfile:

web: gunicorn something:app


我按照你说的更改了我的Procfile,它成功了!虽然我会考虑你的建议。接受了这个答案(: - iamvatsalay

1
你有一个名为app的文件夹和一个名为app.py的顶级文件,该文件作为应用程序的入口点。
为了修复此错误,您需要将入口点文件名更改为其他名称,例如blog.py(或您可能想要的任何其他名称)。
更新您的Procfile
web: gunicorn blog:app

或者,您可以将app文件夹重命名以避免此冲突。


0

我遇到了同样的错误。在我的情况下,我使用了APP属性而不是app。 将APP替换为app后,问题得到解决。

APP = create_app() # correct one -> use app in all lower case 

if __name__ == '__main__':
    APP.run() # correct one -> use app in all lower case

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接