一尘不染

WSGIPath引用了一个不存在的文件

flask

我正在尝试将Flask应用程序上传到AWS,但是这样做却收到错误消息:

你的WSGIPath引用的文件不存在。

在进行一些在线挖掘之后,我发现在.ebextensions文件夹中,我应该指定路径。没有.ebextensions文件夹,因此我创建了一个文件夹,并将以下代码添加到名为settings.config的文件中:

option_settings:
  "aws:elasticbeanstalk:container:python":
    WSGIPath: project/application.py

WSGIPath是application.py文件的正确路径,因此我不确定是什么引起了此错误。我是否正在正确更改WSGIPath,是否有更好的方法,或者是否有其他问题导致这种情况发生?谢谢。


阅读 512

收藏
2020-04-06

共1个答案

一尘不染

在AWS上部署Flask会引起很多配置问题。我遇到了与你类似的问题,因此至少可以向你展示解决WSGI错误的方法。

首先,显然你可以在没有.ebextensions文件夹的情况下执行此操作。相反,(在终端中)我导航到与.elasticbeanstalk目录相同级别的项目,并使用了命令eb config。这将打开一个选项列表,你可以设置这些选项来配置beantalk应用程序。浏览选项,直到找到WSGI路径。我注意到你已将其设置为project/application.py,但是其中不应包含文件夹引用application.py。这是我在Mac终端上的外观(WSGI路径在底部附近)。

请注意,一旦设置好,EB可能会重新部署。没关系。让它。

设置好之后,进入你的application.py文件,并确保你调用了app 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路径错误-尽管在此之后我仍然不得不解决其他问题:-)但这是另一组问题。

2020-04-06