You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS Elastic Beanstalk部署Django时pip找不到匹配依赖包报错

故障原因

pywin32==304是仅面向Windows平台分发的Python依赖,Linux环境下不存在任何可安装的对应版本,这也是报错里from versions: none的直接来源。
你当前的requirements.txt是在本地Windows开发环境下全量导出的,把Windows平台独有的系统依赖也写入了部署清单,而AWS Elastic Beanstalk的Python运行环境基于Amazon Linux,根本不支持pywin32安装,直接导致部署流程中断。日志里的pip版本过低警告不是核心故障,不会直接导致部署失败,无需优先处理。

修复方案
  • 直接编辑requirements.txt,删除pywin32==304整行,同时排查清单里所有带win、win32、pywin字样的依赖,这类都是Windows专属包,Linux环境下全部不需要,直接移除即可。
  • 后续不要直接用pip freeze > requirements.txt全量导出依赖,这种方式会把本地虚拟环境里所有安装过的包(包括平台专属包、间接依赖、调试时安装的无关包)全量写入清单,很容易带入跨平台不兼容的内容。可以手动维护项目直接引入的顶层依赖,或者用依赖扫描工具根据代码里的实际import语句生成清单,避免混入无关内容。
  • 如果删除pywin32行后,flair安装时还是会通过依赖传递拉取pywin32,说明你使用的flair版本存在依赖声明bug,升级flair到最新稳定版即可,官方已经修复了跨平台依赖判断的问题,不会在Linux/macOS环境下强制要求安装Windows专属包。
  • 若后续还出现其他包找不到对应版本的问题,是EB环境默认预装的pip版本过旧导致的包索引检索异常,在项目根目录创建.ebextensions/01_fix_pip.config配置文件,在部署阶段先升级pip,配置内容如下:
commands:
  pip_upgrade:
    command: "/opt/python/run/venv/bin/pip install --upgrade pip setuptools wheel"
    ignoreErrors: false
验证方法

正式部署前,可以先拉取和EB运行环境版本一致的Amazon Linux官方镜像,在容器内测试pip install -r requirements.txt流程,确认没有依赖安装报错后再推送代码发起部署,就能避免部署失败、环境状态降级的问题。

内容的提问来源于stack exchange,提问作者casualcoder

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 10:54:16