2016-02-02 96 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