【问题标题】:Deploying Flask app to Heroku stuck in restarting loop将 Flask 应用程序部署到 Heroku 卡在重启循环中
【发布时间】:2014-09-03 08:20:20
【问题描述】:

我有一个简单的 Flask 应用程序,我正在尝试将它部署到 Heroku,但我遇到了一个应用程序错误,并且日志似乎表明该应用程序卡在某种重启循环中。我认为我的 Procfile 或 run.py 有问题,但我不知道是什么问题。 以下是 Heroku 日志:

2014-07-13T03:02:24.579923+00:00 app[web.1]:  * Running on http://127.0.0.1:5000/
2014-07-13T03:02:24.580216+00:00 app[web.1]:  * Restarting with reloader
2014-07-13T03:02:29.941158+00:00 app[web.1]: /app/app/mechanize_boilerplate.py:13: UserWarning: gzip transfer encoding is experimental!
2014-07-13T03:02:29.941168+00:00 app[web.1]:   br.set_handle_gzip(True)
2014-07-13T03:02:29.955461+00:00 app[web.1]:  * Running on http://127.0.0.1:5000/
2014-07-13T03:02:29.955738+00:00 app[web.1]:  * Restarting with reloader
2014-07-13T03:02:35.300236+00:00 app[web.1]:   br.set_handle_gzip(True)
2014-07-13T03:02:35.300231+00:00 app[web.1]: /app/app/mechanize_boilerplate.py:13: UserWarning: gzip transfer encoding is experimental!
2014-07-13T03:02:35.314821+00:00 app[web.1]:  * Running on http://127.0.0.1:5000/
2014-07-13T03:02:35.315107+00:00 app[web.1]:  * Restarting with reloader
...

这是我目前的项目结构:

/myapplication
    Procfile
    run.py
    requirements.txt
    /app
        __init__.py
        views.py
        mechanize_boilerplate.py
        /static
        /templates

这是我的 Procfile

web: gunicorn run:app

这里是run.py

#!flask/bin/python
from app import app
app.run(debug = True)

这里是 init.py

from flask import Flask

app = Flask(__name__)
from app import views

views.py 从那里运行并且非常经典。 我见过一些 similar questions 并尝试使用我的 Procfile 但无法使其正常工作,我所能做的就是使应用程序崩溃。 有什么建议吗?

【问题讨论】:

  • 在本地运行应用会发生什么?
  • 一切正常...我不得不为 Heroku 添加 Procfile,这让我很怀疑。

标签: python heroku flask


【解决方案1】:

问题是您的 run.py 在 gunicorn 导入应用程序时会运行您的应用程序。您只希望在执行它时发生这种情况。

#!flask/bin/python
from app import app
if __name__ == '__main__':
    app.run(debug = True)

【讨论】:

  • 非常感谢!这并没有立即奏效,但我将我的 run.py 更改为:#!flask/bin/python from app import app if __name__ == '__main__': app.run() 并修复了它!
  • 对不起,是的,这就是我的意思。我从上面的错误文件中复制了代码。我会修复答案,以便将来人们清楚。
猜你喜欢
  • 2012-11-22
  • 2015-05-20
  • 2020-01-23
  • 2017-12-05
  • 2013-01-28
  • 1970-01-01
相关资源
最近更新 更多