2017-02-19 8 views
3

私はGunicornでアプリケーションを実行しようとしています。しかし、FlaskがOSError: [Errno 98] Address already in useを発生させ、Gunicornが起動しているときに、Gunicornがシャットダウンします。 Gunicornでアプリをどのように提供しますか?フラスコはGunicornで実行中のアドレスが既に使用中です

from flask import Flask 

app = Flask(__name__) 

@app.route('/') 
def index(): 
    return 'Hello, World!' 

app.run(debug=True) 
gunicorn app:app 
[2017-02-19 21:09:50 -0800] [21965] [INFO] Starting gunicorn 19.6.0 
[2017-02-19 21:09:50 -0800] [21965] [INFO] Listening at: http://127.0.0.1:8000 (21965) 
[2017-02-19 21:09:50 -0800] [21965] [INFO] Using worker: sync 
[2017-02-19 21:09:50 -0800] [21968] [INFO] Booting worker with pid: 21968 
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit) 
* Restarting with stat 
[2017-02-19 21:09:50 -0800] [21969] [ERROR] Exception in worker process 
Traceback (most recent call last): 
    File "/home/david/.virtualenvs/py36/lib/python3.6/site-packages/gunicorn/arbiter.py", line 557, in spawn_worker 
    worker.init_process() 
    File "/home/david/.virtualenvs/py36/lib/python3.6/site-packages/gunicorn/workers/base.py", line 126, in init_process 
    self.load_wsgi() 
    File "/home/david/.virtualenvs/py36/lib/python3.6/site-packages/gunicorn/workers/base.py", line 136, in load_wsgi 
    self.wsgi = self.app.wsgi() 
    File "/home/david/.virtualenvs/py36/lib/python3.6/site-packages/gunicorn/app/base.py", line 67, in wsgi 
    self.callable = self.load() 
    File "/home/david/.virtualenvs/py36/lib/python3.6/site-packages/gunicorn/app/wsgiapp.py", line 65, in load 
    return self.load_wsgiapp() 
    File "/home/david/.virtualenvs/py36/lib/python3.6/site-packages/gunicorn/app/wsgiapp.py", line 52, in load_wsgiapp 
    return util.import_app(self.app_uri) 
    File "/home/david/.virtualenvs/py36/lib/python3.6/site-packages/gunicorn/util.py", line 357, in import_app 
    __import__(module) 
    File "/home/david/Projects/py36/app.py", line 4, in <module> 
    app.run(debug=True) 
    File "/home/david/.virtualenvs/py36/lib/python3.6/site-packages/flask/app.py", line 841, in run 
    run_simple(host, port, self, **options) 
    File "/home/david/.virtualenvs/py36/lib/python3.6/site-packages/werkzeug/serving.py", line 691, in run_simple 
    s.bind((hostname, port)) 
OSError: [Errno 98] Address already in use 

[2017-02-19 21:09:50 -0800] [21968] [INFO] Worker exiting (pid: 21968) 
[2017-02-19 21:09:50 -0800] [21965] [INFO] Shutting down: Master 
[2017-02-19 21:09:50 -0800] [21965] [INFO] Reason: Worker failed to boot. 

私はgunicorn Connection in use for python flaskerror: [Errno 98] Address already in useを試みたが、それは仕事を得ることができませんでした。

答えて

3

あなたはGunicornを使用しているので、Flask dev serverを使用したくありません。しかし、あなたは無条件でapp.runと呼んでいます。 Gunicornが起動し、アドレスをバインドした後、app.runを呼び出して自分のサーバーを起動しようとするアプリケーションをインポートします。しかしアドレスは既にGunicornによって使用されています。ガードブロックに

移動app.run

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

好ましくdocsで説明したように、DEVサーバを実行するflaskコマンドを使用しなければならないため、それを完全に削除します。

関連する問題