Flask 应用部署到 Heroku 卡在重启循环中
我有一个简单的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,运行起来很正常。
我看到了一些类似的 问题,也尝试调整我的Procfile,但没能成功,最后只把应用搞崩了。
有什么建议吗?
1 个回答
2
问题在于你的 run.py
文件在 gunicorn 导入它的时候就会运行你的应用。你其实只想在你手动执行这个文件的时候才让它运行。
#!flask/bin/python
from app import app
if __name__ == '__main__':
app.run(debug = True)