AWS App Runner部署Django后端遇虚拟环境与Python版本问题
解决方案
1. 修复root运行pip警告及部署失败问题
部署失败大概率是因为root安装的包不在App Runner默认的Python搜索路径里,同时pip的root权限警告也能通过以下方式解决:
- 直接给pip命令加
--user参数,把包安装到当前用户目录:pip install --user -r requirements.txt - 或者用Python自带的
venv建虚拟环境(不用额外装工具,兼容性更好):
注意:在App Runner的构建命令里,要么包含激活虚拟环境的步骤,要么直接用虚拟环境内的pip路径执行安装:python -m venv venv source venv/bin/activate pip install -r requirements.txtvenv/bin/pip install -r requirements.txt
2. 解决pipenv Python版本不匹配问题
- 先查AWS App Runner支持的Python runtime版本(控制台里能看到,目前支持3.7.x、3.8.x、3.9.x、3.10.x),选一个和你项目兼容的版本
- 在项目的
Pipfile里明确指定对应版本,比如:[requires] python_version = "3.10" - 嫌麻烦的话直接换
venv,和App Runner的默认runtime适配性更好,能避免很多版本冲突问题
3. 处理Python 3.11.0不被支持的情况
AWS App Runner目前不支持Python 3.11.x版本,你得换官方支持的版本(比如3.10.x):
- 在App Runner配置里把
runtime-version设为3.10(或者其他支持的版本) - 调整项目依赖:确保Django和其他第三方包都兼容你选的Python版本,比如如果用Django 4.x,3.10是完全支持的,若有依赖不兼容,直接在
requirements.txt里指定兼容的版本号就行
内容的提问来源于stack exchange,提问作者Damika
相关产品推荐
相关产品推荐

