部署Django应用至AWS Elastic Beanstalk时遇requirements.txt错误求助
嘿,我来帮你搞定Django部署到AWS Elastic Beanstalk时eb create失败的问题!结合你提到的操作步骤和常见的部署坑,给你梳理几个关键排查方向:
排查Django部署AWS EB的
eb create失败问题 1. 先盯紧你的requirements.txt
- 确保你是激活虚拟环境后执行的
pip freeze > requirements.txt,别把本地环境里无关的包(比如Windows专属的依赖)混进去——EB用的是Linux实例,不兼容的包会直接导致pip install失败。 - 别漏了
gunicorn!这是EB运行Django必须的WSGI服务器,很多新手会忘记加这个依赖,直接导致实例启动失败。 - 检查Django版本和EB的Python平台兼容性:比如EB的Amazon Linux 2默认支持Python 3.8+,如果你的Django是2.x版本,要确认两者能兼容。
2. 确认EB CLI和环境配置没问题
- 先检查你的EB CLI是不是最新版本,旧版本可能对
-s(单实例)参数有兼容问题:eb --version # 如果版本旧,执行升级 pip install --upgrade awsebcli - 看看项目根目录的
.elasticbeanstalk/config.yml,确认平台配置正确,比如指定了对应版本的Python:platform: Python 3.9 running on 64bit Amazon Linux 2
3. 从EB日志抓关键报错(不用点链接,直接在控制台看更方便)
登录AWS控制台,进入你的Elastic Beanstalk环境,找到日志→请求日志→完整日志,重点找这些报错:
- 如果是
pip install失败:大概率是依赖包找不到、版本冲突,或者需要系统级依赖(比如用psycopg2连接PostgreSQL的话,需要先装libpq-dev,这时候得用.ebextensions配置)。 - 如果是Django启动报错:检查
wsgi.py里的DJANGO_SETTINGS_MODULE路径是否正确,或者在EB环境变量里手动设置这个参数。
4. 补全必要的项目配置文件
- 项目根目录必须有
application.py文件(EB靠这个识别WSGI应用),内容替换成你的项目名:import os import sys # 把Django项目目录加入Python路径 path = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) sys.path.append(path) os.environ.setdefault("DJANGO_SETTINGS_MODULE", "你的Django项目名.settings") from django.core.wsgi import get_wsgi_application application = get_wsgi_application() - 如果需要系统级依赖,在项目根目录创建
.ebextensions文件夹,里面新建01_system_packages.config:packages: yum: postgresql-devel: [] # 如果你用PostgreSQL的话 python3-devel: []
5. 本地预测试省时间
先在本地用eb local run --port 8000测试能不能正常启动,这样可以提前发现依赖或配置问题,不用每次都部署到EB浪费时间。
如果能拿到日志里的具体报错行,比如某条依赖安装失败的提示,或者Django启动的错误信息,可以补充上来,我再帮你精准定位!
内容的提问来源于stack exchange,提问作者mutable user
相关产品推荐
相关产品推荐

