3

私はここで途方に暮れています...

uwsgi を使用してフラスコアプリを実行しようとしています。WSGI Quick Startの例を使用して実行します。

開発用 (restserver.py):

 from api import app

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

これでuwsgiサーバーを起動するにはどうすればよいですか?

私はこれを試しました(restserver.fcgi):

#!/usr/bin/python
from flup.server.fcgi import WSGIServer
from api import app

if __name__ == '__main__':
    WSGIServer(app, bindAddress='/var/run/fcgi.sock').run()

しかし、もっと読むと、uwsgiがデフォルトでメソッドを呼び出したいことがわかりapplicationます。もちろんそれを変更することはできますが、applicationメソッドがないため、実行時に次のようにします。

/usr/local/bin/uwsgi --http :9090 --wsgi-file restserver.fcgi

開始ログに次のメッセージが表示されます。

unable to find "application" callable in file restserver.fcgi
4

1 に答える 1

3

必要なのは、開始コマンドを次のように変更することだけです

/usr/local/bin/uwsgi --http :9090 --wsgi-file restserver.fcgi --callable app

restserver.fcgiまたは、フラスコアプリケーションをインポートする方法を変更します

#!/usr/bin/python
from flup.server.fcgi import WSGIServer
from api import app as application

if __name__ == '__main__':
    WSGIServer(application, bindAddress='/var/run/fcgi.sock').run()

Flask での uWSGI の使用に関するドキュメント

PS: 実際、あなたのフラスコapp WSGI アプリケーションです。

于 2013-08-09T09:44:34.977 に答える