我使用Flask构建了一个名为“ app.py”的应用程序。当我使用“烧瓶运行”时,它将在本地运行。但是,当我将其上传到AWS Elasticbeanstalk时,环境状态更改为“严重”,并且在日志中收到错误消息“找不到或无法统计的目标WSGI脚本”。
我已解决此问题,并在下面发布了解决方案,以防对他人有所帮助。
答案 0 :(得分:0)
该应用程序在本地运行,因为我以前运行了命令“ export FLASK_APP = app.py”来修改环境变量。这通知Flask我的应用程序称为“ app.py”。但是,在Elasticbeanstalk上,默认应用程序名称为“ application.py”。您可以转到AWS控制台> Elasticbeanstalk>您的环境>配置>软件>修改>容器选项> WSGI路径来查看此内容。
因此,有两种解决方案。
将应用程序文件从“ app.py”重命名为“ application.py”,以符合AWS Elasticbeanstal上的默认WSGI路径。
将AWS Elasticbeanstalk上的WSGI Path环境变量更改为“ app.py”以匹配您的应用程序文件的名称。这可以通过以下两种方法之一来完成。首先,通过AWS控制台> Elasticbeanstalk>您的环境>配置>软件>修改>容器选项>更改WSGI Path变量>应用。其次,将Elasticbeanstalk命令行界面(EB CLI)与命令“ eb config”一起使用>向下滚动至标题aws:elasticbeanstalk:container:python:>修改WSGIPath>保存更改。
如果仍然收到此错误,请检查您的应用程序文件是否在根目录中。
答案 1 :(得分:0)
Milos答案有效。我想补充一点,如果您的Flask应用是在__init__.py
内创建的,则还必须指定包名称。
例如,Flaskr应用程序的WSGI路径为“ flaskr/__init__.py
”