我正在尝试使用 AWS EB (Amazon Web Services Elastic Beanstalk) 部署我的 Flask Web 应用程序。不幸的是,我遇到了以下错误:
您的 WSGIPath 引用的文件不存在。
我查看了答案 here和 here ;遵循第一个建议没有改变任何东西(仍然收到相同的错误)。作为引用,此修复涉及创建一个包含以下内容的 .ebextensions/ethanWebsite-env.config
文件,其中 ethanWebsite-env
是我的环境的名称。
option_settings:
"aws:elasticbeanstalk:container:python":
WSGIPath: application.py
第二个链接建议使用 EB CLI 命令 eb config
修改 WSGIPath
环境变量。我已经使用 AWS Web GUI(我的环境的“配置”选项卡的“软件配置” Pane )完成了此操作;它已经设置为 application.py
但我重置它无济于事。我尝试 eb config 时遇到的错误可能更具启发性。
sh: -c: line 0: unexpected EOF while looking for matching `''
sh: -c: line 1: syntax error: unexpected end of file
同样,如果我使用 eb config ethanWebsite-env 指定要配置的环境,我也会收到相同的错误。
这是我的应用程序的结构。
ethan_website/
application.py
connect4.py
isPrime.py
requirements.txt
.ebextensions/
ethanWebsite-env.config
.elasticbeanstalk/
config.yml
static/
(various .css and .js files)
templates/
(various .html files)
我在主项目级别省略了一个flask/
文件夹,其中有很多子文件夹,这些子文件夹似乎是配置python环境的,似乎不相关。
如果有人对可能出现的问题有任何见解,请告诉我。我的 eb config 错误表明配置文件存在问题,但我不确定从哪里开始/查看我已经添加的配置文件之外的内容。谢谢!
最佳答案
我不知道这是否能解决您的问题,但我遇到了同样的问题,并且遇到了 this article 。它解释了 Elastic Beanstalk 的 Flask 应用程序中的默认应用程序对象名称应称为 application
而不是 app
。
例如,在您的主应用程序中,您应该进行以下更改(如果还没有):
app = Flask(__name__)
至
application = Flask(__name__)
关于python - 另一个 Flask/AWS WSGIPath 错误,特别是 : WSGIPath refers to a file that does not exist,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38731027/