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

使用pip安装AWS EB CLI失败:urllib3 v2兼容性问题解决咨询

AWS EB CLI安装失败(urllib3 v2兼容性问题)

问题现象

GitHub Actions CI中安装AWS EB CLI时出现版本冲突错误:

ERROR: botocore 1.29.81 has requirement urllib3<1.27,>=1.25.4, but you'll have urllib3 2.0.2

强行运行eb deploy会触发导入错误:

ImportError: cannot import name 'DEFAULT_CIPHERS' from 'urllib3.util.ssl_' (/home/runner/.local/lib/python3.8/site-packages/urllib3/util/ssl_.py)

核心原因是urllib3 v2移除了DEFAULT_CIPHERS属性,而旧版本botocore依赖该属性。

为什么会安装urllib3 2.0.2?

你使用的awsebcli==3.20.5直接依赖urllib3>=1.26.5但未设置版本上限;同时它依赖的botocore<1.29.82明确要求urllib3<1.27。由于pip版本解析逻辑,当存在无上限的依赖约束时,旧版pip可能忽略冲突直接安装最新可用版本,最终导致urllib3 2.0.2被安装,违反了botocore的版本要求。

解决办法

1. 短期应急解决

直接在安装命令中强制指定urllib3的版本范围,覆盖默认依赖解析:

pip install urllib3<1.27 awsebcli==3.20.5 --upgrade --user

若场景更复杂,可使用约束文件:
创建constraints.txt文件,内容为:

urllib3<1.27

执行安装命令:

pip install awsebcli==3.20.5 --upgrade --user --constraint constraints.txt

2. 正规解决方式

  • 升级兼容版本的awsebcli:官方后续发布的awsebcli版本已修复urllib3版本约束问题,直接安装最新版即可:
    pip install awsebcli --upgrade --user
    
    若需固定版本,选择明确限制urllib3<2的版本(如3.20.6及以后)。
  • 提交Issue反馈:向awsebcli官方仓库提交Issue,指出旧版本(如3.20.5)未正确限制urllib3版本范围导致的兼容性问题,帮助官方完善依赖约束。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 15:34:57