web-dev-qa-db-ja.com

AWS Elastic BeanstalkでWSGIアプリケーションの名前を設定するにはどうすればよいですか?

私のPython Webアプリケーションはappと呼ばれます

# example.py
import flask

app = flask.Flask(__name__.split('.')[0])

そして、AWS-EBでそれを使用して起動しようとすると

# run.py (set correctly with WSGIPath)
from example import app

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

私は得る

mod_wsgi(pid = 22473):ターゲットWSGIスクリプト '/opt/python/current/app/run.py'にWSGIアプリケーション 'application'が含まれていません。

アプリケーションインスタンスの名前がappであることをAWSに伝えるにはどうすればよいですか?

14
orome

mod_wsgiは、applicationという変数を想定しています。このようなことをしてみてください

_from example import app as application
_

注:application.run()は実行しないでください。必要ありません。

22
Dmitry Nedbaylo

WSGIPathは構成できますが。 Beanstalkは、アプリ変数が「application」という名前になることを引き続き想定しています。

小さな単一ファイルの簡単な回避策pythonアプリは

from flask import Flask

app = Flask(__name__)
application = app # For beanstalk

残りのコードはそのままにしておくことができます。その1行を追加する必要がありますapplication = app

1