10

伝統的に、以下のようなアプリケーションを呼び出すように UWSGI 構成ファイルを構成しました。

mydirectory/uwsgi_application.ini
...
#python module to import
app = run_web
module = %(app)
callable = app
...

mydirectory/run_web.py
from ersapp import app
if __name__ == "__main__":
    app.run()

mydirectory/ersapp/__init__.py
...
app = Flask('ersapp')
...

しかし今、私は Miguel Grinberg の Flask book に従っており、ここで彼は以下のようなアプリケーション ファクトリを使用しています。

mydirectory/ersapp/__init__.py
...
def create_app(config_name):
    webapp = Flask(__name__)
    ...
    return webapp

「マネージャー」を使用する ( flask-script Managerを参照)

mydirectory/manage.py
from webapp import create_app
...
webapp = create_app(os.getenv('FLASK_CONFIG') or 'default')
manager = Manager(webapp)
...
if __name__ == '__main__':
    manager.run()

この構成では、開発サーバーをトリガーします$ python manage.py runserver

一方、トリガーする前に$ python run_web.py

現在、このアプリを UWSGI 経由で展開できるようにするために、uwsgi 構成ファイルに何を入れるかについて苦労しています。具体的にはapp、 、module、およびcallable変数です。

ログに表示されるエラーは次のとおりです。

...
--- no python application found, check your startup logs for errors ---
...
4

2 に答える 2

19

uWSGI で Flask-Script を使用しません。アプリに直接向けます。または、あなたの場合は、アプリ ファクトリへの呼び出しをポイントします。最も簡単な例は次のとおりです。

uwsgi --module 'myapp:create_app()'
于 2015-06-09T04:21:45.790 に答える
10

私もflask-scriptマネージャーを使用しているので、私がしたことは

  • のようなものを作成しましたwsgi.py

    from app import * application = create_app("development")

  • それからuwsgi --wsgi-file wsgi.py --callable application

注: 呼び出し可能オブジェクトは、 内のフラスコ オブジェクト名wsgi.pyです。

于 2015-09-11T05:21:53.747 に答える