2016-02-02 95 views
0

最近,我改变了我的Heroku的Python瓶应用从“小应用”格式从flask documentation(去耦一切app.py成独立的子目录)gunicorn连接的蟒蛇瓶

基于“简单包装”格式

在应用程序运行正确使用

> python runserver.py 

但是,在执行

gunicorn runserver:app --log-file=- 

输出:

"Starting gunicorn .... connection in use error" (loops forever) 

我runserver.py配置为:

from re3 import app 
app.run(debug=True) 

__init__.py配置:

import os 
from flask import Flask 
from flask import render_template 
app = Flask(__name__) 
import views 

view.py配置:

from re3 import app 
@app.route('/') 
def index(): 
    return 'Hello World!' 

什么是cha两次执行死刑?

回答

3

问题是,您随时运行应用程序runserver被导入。你只希望在直接执行时发生。

from re3 import app 

if __name__ == '__main__': 
    app.run(debug=True) 

编辑:

的使用情况gunicorn是

$ gunicorn [OPTIONS] APP_MODULE 

当你运行gunicorn,它进口APP_MODULE。在你的情况下,你已经指定runserver。所以虽然你不自己导入,但是gunicorn就是这样做的。在gunicorn可以运行之前apprunserver运行它。

+0

谢谢。 runserver.py永远不会被导入,但我明白你的观点。我添加了更改,但问题仍然存在。 – John

+0

gunicorn导入runserver – dirn