CircleCI安装awsebcli时提示找不到匹配的botocore版本如何解决?
报错原因
- 安装命令语法错误:你当前使用的
pip3 install awsebcli --upgrade pip3 install awscli为错误写法,把两条独立的安装命令拼接成了一行,导致pip参数解析异常,无法正常拉取匹配版本的依赖包。 - 依赖版本冲突:
awsebcli与awscli均依赖botocore,二者要求的botocore版本范围没有重叠,pip无法找到同时满足两个依赖要求的版本,因此抛出匹配失败报错。
解决方法
你可以根据自己的使用场景选择以下任意一种方案修改config.yml的安装步骤:
方案1:修复命令+固定兼容版本(推荐,稳定性最高)
修正安装命令,提前安装匹配两个工具的botocore版本,步骤如下:
- sudo apt-get -y -qq update - sudo apt-get install python3-pip python-dev build-essential - sudo pip3 install --upgrade setuptools pip # 提前安装兼容的botocore版本 - sudo pip3 install botocore==1.21.65 - sudo pip3 install awsebcli awscli --upgrade
方案2:移除不必要的依赖
如果你的CI任务不需要同时使用awsebcli和awscli,可以直接删除对应工具的安装指令,避免版本冲突,仅安装需要的工具即可:
# 仅安装awsebcli示例 - sudo apt-get -y -qq update - sudo apt-get install python3-pip python-dev build-essential - sudo pip3 install --upgrade setuptools pip - sudo pip3 install awsebcli --upgrade
方案3:使用旧版依赖解析器强制安装
如果必须同时安装两个工具的最新版本,可以临时启用pip旧版解析器忽略版本冲突强制安装:
- sudo apt-get -y -qq update - sudo apt-get install python3-pip python-dev build-essential - sudo pip3 install --upgrade setuptools pip - sudo pip3 install awsebcli awscli --upgrade --use-deprecated=legacy-resolver
修改完成后可以新增一步验证指令确认工具安装正常:- eb --version && aws --version
内容的提问来源于stack exchange,提问作者Joel Nieto
相关产品推荐
相关产品推荐

