如何在 AWS Elastic Beanstalk 上配置我的 WSGI 应用程序的名称?

How do I configure the name of my WSGI application on AWS Elastic Beanstalk?

我的 Python 网络应用程序称为 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): Target WSGI script '/opt/python/current/app/run.py' 
    does not contain WSGI application 'application'.

如何告诉 AWS 我的应用程序实例名为 app

mod_wsgi 需要名为 application 的变量。尝试做这样的事情

from example import app as application

注意:不要这样做 application.run()。不需要。

虽然可以配置 WSGIPath。 Beanstalk 仍然期望 app 变量被命名为 'application'.

小型单个文件的简单解决方法 python 应用程序可以是

from flask import Flask

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

您可以保持其余代码不变。您只需要添加那一行 application = app