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

安装旧版Boto3解决awsebcli与botocore版本不兼容问题

问题描述

部署Django项目至AWS Elastic Beanstalk时,参考教程使用Boto3对接S3服务,安装Boto3过程中出现依赖冲突报错:

awsebcli 3.20.3 requires botocore<1.24.0,>1.23.41, but you have botocore 1.27.7 which is incompatible.

报错根因:awsebcli 3.20.3 要求botocore版本区间为大于1.23.41且小于1.24.0,当前环境安装的botocore 1.27.7不符合版本约束。PyPI默认文档仅给出boto3通用安装命令,未说明旧版本安装方式,无法直接解决冲突。

解决方案

按优先级从高到低排列可选方案:

  • 环境隔离方案(无后续冲突隐患,首推)
    awsebcli是独立的部署命令行工具,不需要和Django项目的运行依赖安装在同一Python环境中。使用pipx安装awsebcli可自动实现环境隔离,从根源上避免和项目内boto3、botocore的版本冲突:

    1. 先安装pipx工具
    2. 执行命令安装awsebcli:pipx install awsebcli
    3. 回到项目的虚拟环境中直接安装最新版boto3即可,两边依赖完全独立,不会出现版本不兼容提示。
  • 指定版本安装适配的依赖包
    pip原生支持安装指定历史版本的包,无需查找特殊安装说明,操作步骤如下:

    1. 先卸载当前环境中冲突的包:
    pip3 uninstall -y boto3 botocore
    
    1. 安装符合版本要求的botocore,以及和它版本匹配的boto3(boto3与botocore版本严格一一对应,botocore 1.23.41匹配的boto3版本为1.20.41):
    pip3 install botocore==1.23.41 boto3==1.20.41
    
    1. 执行pip list | grep botocore确认版本处于1.23.41~1.24.0区间内,冲突提示即消失。
  • 升级awsebcli适配新版依赖
    3.20.3为较旧版本的awsebcli,其对botocore的版本限制过于严格,升级到最新版awsebcli后即可兼容更高版本的botocore:

    pip3 install --upgrade awsebcli
    

    升级完成后正常安装最新版boto3即可,不会再出现版本冲突报错。

注意:所有依赖操作如果是针对项目虚拟环境执行,需要先激活对应虚拟环境再运行命令,避免误修改全局Python依赖。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 19:12:19