python - 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 自动确定这一点?
解决方案
尝试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