我正在尝试使用 boto3 学习用于 aws 的 python,所以我尝试执行此处给出的代码 https://boto3.readthedocs.io/en/latest/guide/s3-example-creating-buckets.html 我遇到错误
module boto3 not found
pip3 install boto3
发出此命令会给出以下输出
C:\Users\DEEL>pip3 install boto3
Collecting boto3
Downloading https://files.pythonhosted.org/packages/c9/cd/d48602dc99ecb52876cf
741477f15c874b631e5776723f27092693a5b535/boto3-1.7.80-py2.py3-none-any.whl (128k
B)
100% |████████████████████████████████| 133kB 160kB/s
Collecting botocore<1.11.0,>=1.10.80 (from boto3)
Downloading https://files.pythonhosted.org/packages/5e/cf/b97f44993766af17bf64
aeddadf66f63b6ebf3d700565cc7ee7b13cd0067/botocore-1.10.80-py2.py3-none-any.whl (
4.5MB)
100% |████████████████████████████████| 4.5MB 1.3MB/s
Requirement already satisfied: jmespath<1.0.0,>=0.7.1 in e:\installation2\python
3\lib\site-packages (from boto3) (0.9.3)
Requirement already satisfied: s3transfer<0.2.0,>=0.1.10 in e:\installation2\pyt
hon3\lib\site-packages (from boto3) (0.1.13)
Requirement already satisfied: docutils>=0.10 in e:\installation2\python3\lib\si
te-packages (from botocore<1.11.0,>=1.10.80->boto3) (0.14)
Requirement already satisfied: python-dateutil<3.0.0,>=2.1; python_version >= "2
.7" in e:\installation2\python3\lib\site-packages (from botocore<1.11.0,>=1.10.8
0->boto3) (2.7.3)
Requirement already satisfied: six>=1.5 in e:\installation2\python3\lib\site-pac
kages (from python-dateutil<3.0.0,>=2.1; python_version >= "2.7"->botocore<1.11.
0,>=1.10.80->boto3) (1.11.0)
awscli 1.15.80 has requirement botocore==1.10.79, but you'll have botocore 1.10.
80 which is incompatible.
Installing collected packages: botocore, boto3
Found existing installation: botocore 1.10.79
Uninstalling botocore-1.10.79:
Successfully uninstalled botocore-1.10.79
在此输出中有一行
awscli 1.15.80 has requirement botocore==1.10.79, but you'll have botocore 1.10. 80 which is incompatible.
所以基于这里的链接 如何将 AWS CLI 升级到最新版本?我升级了 awscli
pip3 install –upgrade awscli
在屏幕上得到以下输出
C:\Users\DEEL>pip3 install --upgrade awscli
Collecting awscli
Downloading https://files.pythonhosted.org/packages/6b/fa/89c248eaacccd816fdea
88206060a7cd221f227855782ff7b0ffb80d725a/awscli-1.15.81-py2.py3-none-any.whl (1.
3MB)
100% |████████████████████████████████| 1.3MB 198kB/s
Requirement already satisfied, skipping upgrade: rsa<=3.5.0,>=3.1.2 in e:\instal
lation2\python3\lib\site-packages (from awscli) (3.4.2)
Requirement already satisfied, skipping upgrade: PyYAML<=3.13,>=3.10 in e:\insta
llation2\python3\lib\site-packages (from awscli) (3.13)
Requirement already satisfied, skipping upgrade: colorama<=0.3.9,>=0.2.5 in e:\i
nstallation2\python3\lib\site-packages (from awscli) (0.3.9)
Requirement already satisfied, skipping upgrade: botocore==1.10.80 in e:\install
ation2\python3\lib\site-packages (from awscli) (1.10.80)
Requirement already satisfied, skipping upgrade: s3transfer<0.2.0,>=0.1.12 in e:
\installation2\python3\lib\site-packages (from awscli) (0.1.13)
Requirement already satisfied, skipping upgrade: docutils>=0.10 in e:\installati
on2\python3\lib\site-packages (from awscli) (0.14)
Requirement already satisfied, skipping upgrade: pyasn1>=0.1.3 in e:\installatio
n2\python3\lib\site-packages (from rsa<=3.5.0,>=3.1.2->awscli) (0.4.4)
Requirement already satisfied, skipping upgrade: jmespath<1.0.0,>=0.7.1 in e:\in
stallation2\python3\lib\site-packages (from botocore==1.10.80->awscli) (0.9.3)
Requirement already satisfied, skipping upgrade: python-dateutil<3.0.0,>=2.1; py
thon_version >= "2.7" in e:\installation2\python3\lib\site-packages (from botoco
re==1.10.80->awscli) (2.7.3)
Requirement already satisfied, skipping upgrade: six>=1.5 in e:\installation2\py
thon3\lib\site-packages (from python-dateutil<3.0.0,>=2.1; python_version >= "2.
7"->botocore==1.10.80->awscli) (1.11.0)
Installing collected packages: awscli
Found existing installation: awscli 1.15.80
Uninstalling awscli-1.15.80:
Successfully uninstalled awscli-1.15.80
Successfully installed awscli-1.15.81
我的问题是安装boto3时收到的不兼容消息是什么
awscli 1.15.80 has requirement botocore==1.10.79, but you'll have botocore 1.10. 80 which is incompatible.
如何检查awscli和botocore安装的兼容性以及应该在我的机器上做什么,这样我就不会再遇到问题开发工作。
pip3 列表显示如下
C:\Users\DEEL>pip3 list
Package Version
--------------- -------
awscli 1.15.81
boto3 1.7.80
botocore 1.10.80
colorama 0.3.9
docutils 0.14
jmespath 0.9.3
pip 18.0
pyasn1 0.4.4
python-dateutil 2.7.3
PyYAML 3.13
rsa 3.4.2
s3transfer 0.1.13
setuptools 39.0.1
six 1.11.0
我现在应该做什么才能使 awscli 和 botocore 兼容?
但是我想提一下我正在尝试的代码 https://boto3.readthedocs.io/en/latest/guide/s3-example-creating-buckets.html 在完成所有这些工作后成功执行。
这里有同样的问题以及我是如何解决的,如下所示。
将 aws-cli 升级到最新版本
$ pip3 install awscli --upgrade --user
卸载现有的先前版本的 botocore 和 boto3
$ pip3 uninstall botocore
$ pip3 uninstall boto3
然后再次安装
$ pip3 install botocore
$ pip3 install boto3
结果日志
Package Version
--------------- -------
awscli 1.16.1
boto3 1.8.1
botocore 1.11.1
colorama 0.3.9
docutils 0.14
jmespath 0.9.3
pip 18.0
pyasn1 0.4.4
python-dateutil 2.7.3
PyYAML 3.13
rsa 3.4.2
s3transfer 0.1.13
setuptools 40.0.0
six 1.11.0
urllib3 1.23
virtualenv 16.0.0
wheel 0.31.1
其他答案强调升级版本,但如果有人需要使用特定版本,则存在问题。我必须使用需要 botocore 1.18.18 的第三方库,并且我想要相应的兼容版本的 awscli。为此,只需访问 pypi 上的 botocore 发布历史记录页面 。搜索您的 botocore 版本并检查其发布日期。之后,访问awscli对应的发布历史页面 并搜索在该特定日期发布的 awscli 版本。
就我而言,这是可行的:
> pip uninstall awsebcli boto3 botocore s3transfer
然后通过运行 > pip install awsebcli boto3
同时安装 awsebcli 和
boto3。其他库将自动安装,pip 将找到适合您情况的版本。事实上我花了很多个小时才解决这个问题。 奇怪的是,当我们运行
> pip install awsebcli
时,它也会自动安装 botocore 。当我们运行 > pip install boto3
时,它也会安装 boto3、s3transfer 和 botocore。
因此,在很多情况下都会出现不兼容的冲突。
希望上面的命令能有所帮助。