我正在尝试将Flask应用程序上传到AWS,但是这样做却收到错误消息:
你的WSGIPath引用的文件不存在。
在进行一些在线挖掘之后,我发现在.ebextensions文件夹中,我应该指定路径。没有.ebextensions文件夹,因此我创建了一个文件夹,并将以下代码添加到名为settings.config的文件中:
option_settings: "aws:elasticbeanstalk:container:python": WSGIPath: project/application.py
WSGIPath是application.py文件的正确路径,因此我不确定是什么引起了此错误。我是否正在正确更改WSGIPath,是否有更好的方法,或者是否有其他问题导致这种情况发生?谢谢。
在AWS上部署Flask会引起很多配置问题。我遇到了与你类似的问题,因此至少可以向你展示解决WSGI错误的方法。
首先,显然你可以在没有.ebextensions文件夹的情况下执行此操作。相反,(在终端中)我导航到与.elasticbeanstalk目录相同级别的项目,并使用了命令eb config。这将打开一个选项列表,你可以设置这些选项来配置beantalk应用程序。浏览选项,直到找到WSGI路径。我注意到你已将其设置为project/application.py,但是其中不应包含文件夹引用application.py。这是我在Mac终端上的外观(WSGI路径在底部附近)。
eb config
application.py
请注意,一旦设置好,EB可能会重新部署。没关系。让它。
设置好之后,进入你的application.py文件,并确保你调用了app application。例如,我的看起来像这样:
application
from flask import Flask from flask import render_template application = Flask(__name__) @application.route('/') @application.route('/index') def index(): return render_template('index.html', title='Home')
这消除了WSGI路径错误-尽管在此之后我仍然不得不解决其他问题:-)但这是另一组问题。