【问题标题】:Flask app on Elasticbeanstalk - "Target WSGI script not found or unable to stat"Elasticbeanstalk 上的 Flask 应用程序 - “未找到目标 WSGI 脚本或无法统计”
【发布时间】:2019-03-04 13:43:40
【问题描述】:

我使用 Flask 构建了一个名为“app.py”的应用程序。当我使用“烧瓶运行”时,它在本地运行。但是,当我将其上传到 AWS Elasticbeanstalk 时,环境状态更改为“严重”,并且在日志中我收到错误消息“未找到目标 WSGI 脚本或无法统计”。

我解决了这个问题,并在下面发布了解决方案,以防对其他人有帮助。

【问题讨论】:

    标签: flask amazon-elastic-beanstalk


    【解决方案1】:

    应用程序在本地运行,因为我之前运行了命令“export FLASK_APP=app.py”来修改环境变量。这会通知 Flask 我的应用程序名为“app.py”。但是,在 Elasticbeanstalk 上,默认应用程序名称是“application.py”。您可以通过转到 AWS 控制台 > Elasticbeanstalk > 您的环境 > 配置 > 软件 > 修改 > 容器选项 > WSGI 路径来查看。

    因此有 2 个解决方案。

    1. 将您的应用程序文件从“app.py”重命名为“application.py”,以符合 AWS Elasticbeanstal 上的默认 WSGI 路径。

    2. 将 AWS Elasticbeanstalk 上的 WSGI Path 环境变量更改为“app.py”以匹配您的应用程序文件的名称。这可以通过以下两种方式之一来完成。首先,通过 AWS 控制台 > Elasticbeanstalk > 您的环境 > 配置 > 软件 > 修改 > 容器选项 > 更改 WSGI 路径变量 > 应用。其次,使用 Elasticbeanstalk 命令行界面 (EB CLI) 和命令“eb config” > 向下滚动到标题 aws:elasticbeanstalk:container:python: > Modify WSGIPath > Save changes。

    如果您仍然收到此错误,请检查您的应用程序文件是否在根目录中。

    【讨论】:

      【解决方案2】:

      米洛斯回答有效。我想补充一点,如果您的 Flask 应用程序是在 __init__.py 中创建的,那么您还必须指定包名。 例如,Flaskr 应用程序的 WSGI 路径为“flaskr/__init__.py

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-03-18
        • 2016-05-04
        • 1970-01-01
        • 2012-05-18
        • 1970-01-01
        • 2016-10-08
        • 2018-06-23
        相关资源
        最近更新 更多