另一个 Flask/AWS WSGIPath 错误,具体是:WSGIPath 指的是一个不存在的文件
Posted
技术标签:
【中文标题】另一个 Flask/AWS WSGIPath 错误,具体是:WSGIPath 指的是一个不存在的文件【英文标题】:Another Flask/AWS WSGIPath Error, specifically: WSGIPath refers to a file that does not exist 【发布时间】:2016-12-08 10:24:06 【问题描述】:我正在尝试使用 AWS EB (Amazon Web Services Elastic Beanstalk) 部署我的 Flask Web 应用程序。不幸的是,我遇到了以下错误:
Your WSGIPath refers to a file that does not exist.
我查看了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(我的环境的配置选项卡的软件配置窗格)完成了这项工作;它已经设置为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 错误向我表明配置文件存在问题,但我不确定从哪里开始/查看我已经添加的文件。谢谢!
【问题讨论】:
我能够通过在新环境中重新部署我的应用程序来解决此问题,严格按照here 概述的 EB CLI。不过,我仍然希望我对为什么我以前的方法会失败有所了解。当我使用eb config
时,我仍然会遇到同样的错误。
从哪里得到这个错误:你的 WSGIPath 引用了一个不存在的文件。?
【参考方案1】:
我不知道这是否解决了你的问题,但我遇到了同样的问题,我遇到了this article。它解释了 Elastic Beanstalk 的烧瓶应用程序中的默认应用程序对象名称应称为 application
而不是 app
。
因此,例如,在您的主应用程序中,您应该进行以下更改(如果您还没有):
app = Flask(__name__)
到
application = Flask(__name__)
【讨论】:
【参考方案2】:在这个问题上花了几个星期之后。我发现上述问题可以有两种解决方案:
flask 服务器文件中的默认对象名称应为application
运行函数将类似于application.run(host='0.0.0.0')
,文件名也应为 application.py 或者您可以将 eb config 中的 WSGI PATH 更改为名称你的文件。我更喜欢 application.py。
即使在尝试了第一个解决方案之后,如果它不起作用,请将 WSGI PATH 更改为 folder_name/application.py
。
希望对您有所帮助。
【讨论】:
以上是关于另一个 Flask/AWS WSGIPath 错误,具体是:WSGIPath 指的是一个不存在的文件的主要内容,如果未能解决你的问题,请参考以下文章
使用 AWS Elasticbeanstalk 部署 Django 应用程序时出现 WSGIPath 错误
Elastic Beanstalk 未检测到我的 WSGIPath - ModuleNotFoundError
Django AWS Elastic Beanstalk WSGIPath 引用了一个不存在的文件