AWS Elastic Beanstalk部署Flask报No module named 'application'错误
问题原因
AWS Elastic Beanstalk Python 3 Linux 2 平台默认会在部署包的根目录查找可调用的WSGI对象application,你遇到的报错是部署包结构、导入路径不符合EB的运行规则导致的。
解决方案
按以下步骤逐一排查修复即可:
- 调整部署包结构
你上传到EB的zip压缩包不能包含外层的Crypto文件夹,需要直接选中Crypto目录内的App文件夹、application.py、requirements.txt三个内容打包,确保解压后根目录直接存在application.py文件。 - 修正相对导入路径
修改App/__init__.py内的导入语句,用相对导入避免路径冲突:
from flask import Flask from .core.views import core application = Flask(__name__) application.register_blueprint(core) application.config['SECRET_KEY'] = 'mysecret'
- 显式指定WSGI入口(可选,路径正确时不需要额外配置)
如果调整后仍报错,可在项目根目录新建.ebextensions/wsgi.config文件,添加以下配置强制指定入口:
option_settings: aws:elasticbeanstalk:container:python: WSGIPath: application.py
验证方法
本地在application.py所在目录执行gunicorn application:application,如果能正常启动服务,说明路径配置正确,部署到EB即可正常运行。
内容的提问来源于stack exchange,提问作者ashkrelja
相关产品推荐
相关产品推荐

