使用Python3.7在AWS Elastic Beanstalk部署Flask应用eb deploy报错求助
问题根因
报错并非Elastic Beanstalk实例缺少Python3.7运行环境,实际是你本地打包部署时,将项目内的本地虚拟环境(通常为env文件夹)一同打包到了部署包中。EB在实例上解压部署包后,会尝试修改解压后所有项目文件的所属权限,而你本地虚拟环境内的Python路径和EB实例上的路径不一致,因此触发了目录不存在的报错。
修复步骤
- 删除本地项目根目录下的
env、venv等虚拟环境文件夹,不要将其包含在部署资源中 - 在项目根目录新建
.ebignore文件,填入以下内容,避免后续打包时自动包含无关文件:
# 排除虚拟环境目录 env/ venv/ .venv/ # 排除Python缓存文件 __pycache__/ *.pyc *.pyo *.pyd # 排除其他构建/本地配置文件 build/ dist/ *.egg-info/ .idea/ .vscode/ .git/
- 确认你创建的EB环境使用的Python平台版本和项目依赖兼容:你使用的Flask 1.1.2版本兼容Python 3.6~3.9,若当前EB环境的Python版本不在该范围内,可在EB控制台的环境配置页修改平台版本适配。
- 重新执行
eb deploy命令即可完成部署。
内容的提问来源于stack exchange,提问作者sontd
相关产品推荐
相关产品推荐

