首页 > 解决方案 > boto3、aiobotocore、awscli、botocore的版本不兼容;无法解决

问题描述

如果我尝试安装最新版本的 aiobotocore pip3 install aiobotocore==0.10.3,它会说我的 botocore 版本不兼容,我需要它的旧版本。

ERROR: aiobotocore 0.10.3 has requirement botocore<1.12.190,>=1.12.189, but you'll have botocore 1.12.224 which is incompatible.

因此,如果我将我的 botocore 版本更改为 1.12.189,它会中断awscli并且boto3

ERROR: boto3 1.9.224 has requirement botocore<1.13.0,>=1.12.224, but you'll have botocore 1.12.189 which is incompatible.
ERROR: awscli 1.16.234 has requirement botocore==1.12.224, but you'll have botocore 1.12.189 which is incompatible.

似乎没有可以与它们一起使用的软件包版本。谁能告诉我哪些版本都兼容?有没有办法让 pip 自动确定这一点?

标签: pythonamazon-web-servicesboto3aws-clibotocore

解决方案


尝试aioboto3而不是boto3

添加requirements.in

aioboto3
aiobotocore

赶紧跑

 python3.8 -m pip install pip --upgrade
 python3.8 -m pip install pip-tools
 python3.8 -m piptools compile requirements.in

你会得到类似的东西

#
# This file is autogenerated by pip-compile
# To update, run:
#
#    pip-compile requirements.in
#
aioboto3==8.0.5           # via -r requirements.in
aiobotocore==1.0.4        # via -r requirements.in, aioboto3
aiohttp==3.6.2            # via aiobotocore
aioitertools==0.7.0       # via aiobotocore
async-timeout==3.0.1      # via aiohttp
attrs==19.3.0             # via aiohttp
boto3==1.12.32            # via aiobotocore
botocore==1.15.32         # via aiobotocore, boto3, s3transfer
chardet==3.0.4            # via aiohttp
docutils==0.15.2          # via botocore
idna==2.10                # via yarl
jmespath==0.10.0          # via boto3, botocore
multidict==4.7.6          # via aiohttp, yarl
python-dateutil==2.8.1    # via botocore
s3transfer==0.3.3         # via boto3
six==1.15.0               # via python-dateutil
typing-extensions==3.7.4.2  # via aioitertools
urllib3==1.25.10          # via botocore
wrapt==1.12.1             # via aiobotocore
yarl==1.5.1               # via aiohttp

推荐阅读