Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

how to check awscli and compatible botocore package is installed

Tags:

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.

like image 522
ss321c Avatar asked Aug 18 '18 17:08

ss321c


People also ask

How do I know if Botocore is installed?

To check which version of botocore is installed, use pip show botocore or pip3 show botocore in your Linux terminal.

Is Botocore included in Boto3?

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.

How do I install Botocore in Python?

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.

What is Botocore and Boto3?

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.


2 Answers

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
like image 99
AungKyawSoe Avatar answered Oct 05 '22 20:10

AungKyawSoe


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.

like image 39
Shubham Avatar answered Oct 05 '22 21:10

Shubham