I am trying to learn python for aws using boto3 so I was trying to execute code given here https://boto3.readthedocs.io/en/latest/guide/s3-example-creating-buckets.html
I got errors module boto3 not found
so I upgraded to boto3 based on an answer here
Unable to install boto3
mentioned to use pip3 install boto3
issuing of this command gives me following output
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
in this output there is a line
awscli 1.15.80 has requirement botocore==1.10.79, but you'll have botocore 1.10. 80 which is incompatible.
so based on link here
How to upgrade AWS CLI to the latest version? I upgraded awscli pip3 install –upgrade awscli
got following output on screen
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
my question is what is that incompatibility message which I got when installing boto3 awscli 1.15.80 has requirement botocore==1.10.79, but you'll have botocore 1.10. 80 which is incompatible.
how do I check the compatibility of awscli and botocore installations and what should be done on my machine so that I don't face problems in further development work.
pip3 list shows following
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
What should I do now so that awscli and botocore are compatible?
However I would like to mention the code which I was trying from https://boto3.readthedocs.io/en/latest/guide/s3-example-creating-buckets.html executed successfully after all this work.
To check which version of botocore is installed, use pip show botocore or pip3 show botocore in your Linux terminal.
Boto versions include Boto, Boto3 and Botocore. Boto3 is the latest version of the SDK, providing support for Python versions 2.6. 5, 2.7 and 3.3. Boto3 includes several service-specific features to ease development.
Assuming that you have Python and virtualenv installed, set up your environment and install the required dependencies like this or you can install the library using pip: $ git clone https://github.com/boto/botocore.git $ cd botocore $ virtualenv venv ... $ . venv/bin/activate $ pip install -r requirements.
Botocore. Boto3 is built atop of a library called Botocore, which is shared by the AWS CLI. Botocore provides the low level clients, session, and credential & configuration data. Boto3 builds on top of Botocore by providing its own session, resources and collections.
Same issue here and how I solved is shown below.
Upgrade aws-cli to latest version
$ pip3 install awscli --upgrade --user
Uninstall existing previous version of botocore and boto3
$ pip3 uninstall botocore
$ pip3 uninstall boto3
And Install again
$ pip3 install botocore
$ pip3 install boto3
Result log
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
Other answers emphasize on upgrading the version but there is an issue with that in case someone requires a particular version to use. I have to use a third party library which required botocore 1.18.18 and I want corresponding compatible version of awscli. For this, just visit release history page of botocore on pypi .Search for your botocore version and check it's release date. After this, visit corresponding release history page of awscli and search for the awscli version released on that particular date.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With