【问题标题】:error while deploying flask app on heroku : Failed to find attribute 'app' in 'app'在heroku上部署烧瓶应用程序时出错:无法在“应用程序”中找到属性“应用程序”
【发布时间】:2020-04-28 12:34:01
【问题描述】:

我正在尝试在 heroku 上部署我非常简单的烧瓶应用程序,但是当我尝试访问我的 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. 我从终端检查了日志,它说:找不到属性“应用”中的“应用”

代码

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

请帮助解决这个问题。我在这里做错了什么?

【问题讨论】:

    标签: flask heroku web-deployment


    【解决方案1】:

    可能可以通过 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 并且它成功了!虽然我会考虑你的建议。接受了答案(:
    【解决方案2】:

    您有一个名为 app 的文件夹和一个名为 app.py 的顶级文件,它充当您的应用程序的入口点。

    它修复了这个错误,您需要将入口点文件名更改为其他名称,例如 blog.py(或您可能想要的任何其他名称)。

    更新您的Procfile

    web: gunicorn blog:app
    

    或者,您可以重命名app 文件夹以避免这种冲突

    【讨论】:

      【解决方案3】:

      我遇到了同样的错误。就我而言,我使用的是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
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-11-26
        • 1970-01-01
        • 2020-11-08
        相关资源
        最近更新 更多