我有一个在本地运行良好的Flask应用程序,但是当我推送到Heroku时,我收到错误消息:
* Running on http://127.0.0.1:5000/ [INFO] Starting gunicorn 18.0 [ERROR] Connection in use: ('0.0.0.0', 8163)
我在这个问题上尝试了解决方案,其中gunicorn和werkzeug正在互相争斗,但是__name__ == "__main__"
在我的主应用程序文件(run.py
)中添加一个 块并没有解决我的错误.
这篇SO帖子建议确保我的流程全部清理完毕.我这样做但它仍然无法正常工作,所以我实际上删除了我的整个heroku应用程序并进行了修复,它仍然给出了同样的错误.
我的run.py
文件看起来像:
#!pl_env/bin/python from app import app if __name__ == "__main__": app.run(debug=True, port=33507) # [33507 is the Flask port on Heroku]
我的Procfile
是:web:gunicorn run:app
__init__.py
应用程序中的文件是:
from flask import Flask import os from flask.ext.login import LoginManager app = Flask(__name__) app.config.from_object('config') lm = LoginManager() lm.init_app(app) lm.login_view = 'login' from app import views
视图有应用程序的内容逻辑,但我认为那里没有任何东西可以搞乱gunicorn.以下是views.py导入以防万一:
from flask import Flask, render_template, flash, redirect from flask.ext.login import login_required, login_user from app import app, lm from forms import LoginForm
我现在肯定不知道在哪里找出这个连接错误.关于为什么它似乎认为我已经在使用的任何想法0.0.0.0
?
谢谢
莫妮卡
编辑:我在本地运行应用程序foreman start
,它干净利落地工作0.0.0.0:5000
,所以我认为我有一个Heroku问题
EDIT2:我故意打破了我的观点流程 - 做了一个内部无限引用 - 并推动它看看会发生什么.我得到了预期的错误日志,解除了它,并推动了回滚,现在它正在工作.我完全不知道为什么它应该起作用,除非可能以预期的方式打破我的枪支连接.如果有人对这个谜团有任何解释,我会爱他们.