Installing awscli and awsebcli from pip introduces botocore dependency mismatch
See original GitHub issueCommunity Note
Please vote on this issue by adding a π reaction to the original issue to help the community and maintainers prioritize this request. Please do not leave β+1β or βme tooβ comments, they generate extra noise for issue followers and do not help prioritize the request. If you are interested in working on this issue or have submitted a pull request, please leave a comment.
Description
When installing pip3 install awsebcli awscli
(i.e. latest versions of both available on pypi), awscli
depends on botocore==1.15.0
and awsebcli
depends on botocore>=1.14.0,<1.15
(as per https://github.com/aws/aws-elastic-beanstalk-cli/blob/master/setup.py#L22 )
Steps to reproduce
docker run -it python:3.7 bash
within container:
pip3 install awsebcli awscli
(note: if you change the order of installation to pip3 install awscli awsebcli
there is also the same type of error for colorama
)
Observed result
Collecting awsebcli
Downloading https://files.pythonhosted.org/packages/1f/b2/28049bbf969d57e74bfe2675be80417210d05b6f1b9ac878fc90aef1aaa8/awsebcli-3.17.1.tar.gz (242kB)
|ββββββββββββββββββββββββββββββββ| 245kB 2.2MB/s
Collecting awscli
Downloading https://files.pythonhosted.org/packages/54/ad/ddb20034436e93e72a5d3a2707ccaba53abc6437efc4ffcc274fbbcd96b6/awscli-1.18.0-py2.py3-none-any.whl (2.9MB)
|ββββββββββββββββββββββββββββββββ| 2.9MB 572kB/s
Collecting botocore<1.15,>=1.14.0 (from awsebcli)
Downloading https://files.pythonhosted.org/packages/f2/bc/788364aeb7d969a38c9d2295f95f1315a2ef49163f9b71d06de8c5ef0754/botocore-1.14.17-py2.py3-none-any.whl (5.9MB)
|ββββββββββββββββββββββββββββββββ| 5.9MB 366kB/s
Collecting cement==2.8.2 (from awsebcli)
Downloading https://files.pythonhosted.org/packages/70/60/608f0b8975f4ee7deaaaa7052210d095e0b96e7cd3becdeede9bd13674a1/cement-2.8.2.tar.gz (165kB)
|ββββββββββββββββββββββββββββββββ| 174kB 770kB/s
Collecting colorama<0.4.0,>=0.3.9 (from awsebcli)
Downloading https://files.pythonhosted.org/packages/db/c8/7dcf9dbcb22429512708fe3a547f8b6101c0d02137acbd892505aee57adf/colorama-0.3.9-py2.py3-none-any.whl
Collecting future<0.17.0,>=0.16.0 (from awsebcli)
Downloading https://files.pythonhosted.org/packages/00/2b/8d082ddfed935f3608cc61140df6dcbf0edea1bc3ab52fb6c29ae3e81e85/future-0.16.0.tar.gz (824kB)
|ββββββββββββββββββββββββββββββββ| 829kB 1.4MB/s
Collecting pathspec==0.5.9 (from awsebcli)
Downloading https://files.pythonhosted.org/packages/84/2a/bfee636b1e2f7d6e30dd74f49201ccfa5c3cf322d44929ecc6c137c486c5/pathspec-0.5.9.tar.gz
Collecting python-dateutil<2.8.1,>=2.1 (from awsebcli)
Downloading https://files.pythonhosted.org/packages/41/17/c62faccbfbd163c7f57f3844689e3a78bae1f403648a6afb1d0866d87fbb/python_dateutil-2.8.0-py2.py3-none-any.whl (226kB)
|ββββββββββββββββββββββββββββββββ| 235kB 645kB/s
Collecting PyYAML<5.3,>=5.2 (from awsebcli)
Downloading https://files.pythonhosted.org/packages/8d/c9/e5be955a117a1ac548cdd31e37e8fd7b02ce987f9655f5c7563c656d5dcb/PyYAML-5.2.tar.gz (265kB)
|ββββββββββββββββββββββββββββββββ| 266kB 709kB/s
Collecting requests<2.21,>=2.20.1 (from awsebcli)
Downloading https://files.pythonhosted.org/packages/ff/17/5cbb026005115301a8fb2f9b0e3e8d32313142fe8b617070e7baad20554f/requests-2.20.1-py2.py3-none-any.whl (57kB)
|ββββββββββββββββββββββββββββββββ| 61kB 1.3MB/s
Requirement already satisfied: setuptools>=20.0 in /usr/local/lib/python3.7/site-packages (from awsebcli) (41.0.1)
Collecting semantic_version==2.5.0 (from awsebcli)
Downloading https://files.pythonhosted.org/packages/bd/8d/49a968bafda84c2f1c39a9ed429e37cb75cc03896e8d6b873001e6456fad/semantic_version-2.5.0-py3-none-any.whl
Collecting six<1.12.0,>=1.11.0 (from awsebcli)
Downloading https://files.pythonhosted.org/packages/67/4b/141a581104b1f6397bfa78ac9d43d8ad29a7ca43ea90a2d863fe3056e86a/six-1.11.0-py2.py3-none-any.whl
Collecting termcolor==1.1.0 (from awsebcli)
Downloading https://files.pythonhosted.org/packages/8a/48/a76be51647d0eb9f10e2a4511bf3ffb8cc1e6b14e9e4fab46173aa79f981/termcolor-1.1.0.tar.gz
Collecting urllib3<1.25,>=1.24.1 (from awsebcli)
Downloading https://files.pythonhosted.org/packages/01/11/525b02e4acc0c747de8b6ccdab376331597c569c42ea66ab0a1dbd36eca2/urllib3-1.24.3-py2.py3-none-any.whl (118kB)
|ββββββββββββββββββββββββββββββββ| 122kB 900kB/s
Collecting wcwidth<0.2.0,>=0.1.7 (from awsebcli)
Downloading https://files.pythonhosted.org/packages/58/b4/4850a0ccc6f567cc0ebe7060d20ffd4258b8210efadc259da62dc6ed9c65/wcwidth-0.1.8-py2.py3-none-any.whl
Collecting docker-compose<1.26.0,>=1.25.2 (from awsebcli)
Downloading https://files.pythonhosted.org/packages/40/91/670b31a1c452cc5f3ed9e1ff905f6c4501a182551dfd8fa1981a8dca2d67/docker_compose-1.25.4-py2.py3-none-any.whl (136kB)
|ββββββββββββββββββββββββββββββββ| 143kB 872kB/s
Collecting blessed>=1.9.5 (from awsebcli)
Downloading https://files.pythonhosted.org/packages/18/e1/72c107cebd9085c288998295ebeaad1036aa893755168b1284c94bd722c9/blessed-1.17.2-py2.py3-none-any.whl (76kB)
|ββββββββββββββββββββββββββββββββ| 81kB 399kB/s
Collecting rsa<=3.5.0,>=3.1.2 (from awscli)
Downloading https://files.pythonhosted.org/packages/e1/ae/baedc9cb175552e95f3395c43055a6a5e125ae4d48a1d7a924baca83e92e/rsa-3.4.2-py2.py3-none-any.whl (46kB)
|ββββββββββββββββββββββββββββββββ| 51kB 1.1MB/s
Collecting docutils<0.16,>=0.10 (from awscli)
Downloading https://files.pythonhosted.org/packages/22/cd/a6aa959dca619918ccb55023b4cb151949c64d4d5d55b3f4ffd7eee0c6e8/docutils-0.15.2-py3-none-any.whl (547kB)
|ββββββββββββββββββββββββββββββββ| 552kB 598kB/s
Collecting s3transfer<0.4.0,>=0.3.0 (from awscli)
Downloading https://files.pythonhosted.org/packages/69/79/e6afb3d8b0b4e96cefbdc690f741d7dd24547ff1f94240c997a26fa908d3/s3transfer-0.3.3-py2.py3-none-any.whl (69kB)
|ββββββββββββββββββββββββββββββββ| 71kB 706kB/s
Collecting jmespath<1.0.0,>=0.7.1 (from botocore<1.15,>=1.14.0->awsebcli)
Downloading https://files.pythonhosted.org/packages/83/94/7179c3832a6d45b266ddb2aac329e101367fbdb11f425f13771d27f225bb/jmespath-0.9.4-py2.py3-none-any.whl
Collecting certifi>=2017.4.17 (from requests<2.21,>=2.20.1->awsebcli)
Downloading https://files.pythonhosted.org/packages/b9/63/df50cac98ea0d5b006c55a399c3bf1db9da7b5a24de7890bc9cfd5dd9e99/certifi-2019.11.28-py2.py3-none-any.whl (156kB)
|ββββββββββββββββββββββββββββββββ| 163kB 840kB/s
Collecting idna<2.8,>=2.5 (from requests<2.21,>=2.20.1->awsebcli)
Downloading https://files.pythonhosted.org/packages/4b/2a/0276479a4b3caeb8a8c1af2f8e4355746a97fab05a372e4a2c6a6b876165/idna-2.7-py2.py3-none-any.whl (58kB)
|ββββββββββββββββββββββββββββββββ| 61kB 629kB/s
Collecting chardet<3.1.0,>=3.0.2 (from requests<2.21,>=2.20.1->awsebcli)
Downloading https://files.pythonhosted.org/packages/bc/a9/01ffebfb562e4274b6487b4bb1ddec7ca55ec7510b22e4c51f14098443b8/chardet-3.0.4-py2.py3-none-any.whl (133kB)
|ββββββββββββββββββββββββββββββββ| 143kB 904kB/s
Collecting cached-property<2,>=1.2.0 (from docker-compose<1.26.0,>=1.25.2->awsebcli)
Downloading https://files.pythonhosted.org/packages/3b/86/85c1be2e8db9e13ef9a350aecd6dea292bd612fa288c2f40d035bb750ded/cached_property-1.5.1-py2.py3-none-any.whl
Collecting dockerpty<1,>=0.4.1 (from docker-compose<1.26.0,>=1.25.2->awsebcli)
Downloading https://files.pythonhosted.org/packages/8d/ee/e9ecce4c32204a6738e0a5d5883d3413794d7498fe8b06f44becc028d3ba/dockerpty-0.4.1.tar.gz
Collecting websocket-client<1,>=0.32.0 (from docker-compose<1.26.0,>=1.25.2->awsebcli)
Downloading https://files.pythonhosted.org/packages/4c/5f/f61b420143ed1c8dc69f9eaec5ff1ac36109d52c80de49d66e0c36c3dfdf/websocket_client-0.57.0-py2.py3-none-any.whl (200kB)
|ββββββββββββββββββββββββββββββββ| 204kB 457kB/s
Collecting jsonschema<4,>=2.5.1 (from docker-compose<1.26.0,>=1.25.2->awsebcli)
Downloading https://files.pythonhosted.org/packages/c5/8f/51e89ce52a085483359217bc72cdbf6e75ee595d5b1d4b5ade40c7e018b8/jsonschema-3.2.0-py2.py3-none-any.whl (56kB)
|ββββββββββββββββββββββββββββββββ| 61kB 1.2MB/s
Collecting docker[ssh]<5,>=3.7.0 (from docker-compose<1.26.0,>=1.25.2->awsebcli)
Downloading https://files.pythonhosted.org/packages/58/74/379a9d30b1620def158c40b88c43e01c1936a287ebb97afab0699c601c57/docker-4.2.0-py2.py3-none-any.whl (143kB)
|ββββββββββββββββββββββββββββββββ| 153kB 745kB/s
Collecting texttable<2,>=0.9.0 (from docker-compose<1.26.0,>=1.25.2->awsebcli)
Downloading https://files.pythonhosted.org/packages/ec/b1/8a1c659ce288bf771d5b1c7cae318ada466f73bd0e16df8d86f27a2a3ee7/texttable-1.6.2-py2.py3-none-any.whl
Collecting docopt<1,>=0.6.1 (from docker-compose<1.26.0,>=1.25.2->awsebcli)
Downloading https://files.pythonhosted.org/packages/a2/55/8f8cab2afd404cf578136ef2cc5dfb50baa1761b68c9da1fb1e4eed343c9/docopt-0.6.2.tar.gz
Collecting pyasn1>=0.1.3 (from rsa<=3.5.0,>=3.1.2->awscli)
Downloading https://files.pythonhosted.org/packages/62/1e/a94a8d635fa3ce4cfc7f506003548d0a2447ae76fd5ca53932970fe3053f/pyasn1-0.4.8-py2.py3-none-any.whl (77kB)
|ββββββββββββββββββββββββββββββββ| 81kB 751kB/s
Collecting attrs>=17.4.0 (from jsonschema<4,>=2.5.1->docker-compose<1.26.0,>=1.25.2->awsebcli)
Downloading https://files.pythonhosted.org/packages/a2/db/4313ab3be961f7a763066401fb77f7748373b6094076ae2bda2806988af6/attrs-19.3.0-py2.py3-none-any.whl
Collecting pyrsistent>=0.14.0 (from jsonschema<4,>=2.5.1->docker-compose<1.26.0,>=1.25.2->awsebcli)
Downloading https://files.pythonhosted.org/packages/90/aa/cdcf7ef88cc0f831b6f14c8c57318824c9de9913fe8de38e46a98c069a35/pyrsistent-0.15.7.tar.gz (107kB)
|ββββββββββββββββββββββββββββββββ| 112kB 743kB/s
Collecting importlib-metadata; python_version < "3.8" (from jsonschema<4,>=2.5.1->docker-compose<1.26.0,>=1.25.2->awsebcli)
Downloading https://files.pythonhosted.org/packages/8b/03/a00d504808808912751e64ccf414be53c29cad620e3de2421135fcae3025/importlib_metadata-1.5.0-py2.py3-none-any.whl
Collecting paramiko>=2.4.2; extra == "ssh" (from docker[ssh]<5,>=3.7.0->docker-compose<1.26.0,>=1.25.2->awsebcli)
Downloading https://files.pythonhosted.org/packages/06/1e/1e08baaaf6c3d3df1459fd85f0e7d2d6aa916f33958f151ee1ecc9800971/paramiko-2.7.1-py2.py3-none-any.whl (206kB)
|ββββββββββββββββββββββββββββββββ| 215kB 908kB/s
Collecting zipp>=0.5 (from importlib-metadata; python_version < "3.8"->jsonschema<4,>=2.5.1->docker-compose<1.26.0,>=1.25.2->awsebcli)
Downloading https://files.pythonhosted.org/packages/46/42/f2dd964b2a6b1921b08d661138148c1bcd3f038462a44019416f2342b618/zipp-2.2.0-py36-none-any.whl
Collecting pynacl>=1.0.1 (from paramiko>=2.4.2; extra == "ssh"->docker[ssh]<5,>=3.7.0->docker-compose<1.26.0,>=1.25.2->awsebcli)
Downloading https://files.pythonhosted.org/packages/27/15/2cd0a203f318c2240b42cd9dd13c931ddd61067809fee3479f44f086103e/PyNaCl-1.3.0-cp34-abi3-manylinux1_x86_64.whl (759kB)
|ββββββββββββββββββββββββββββββββ| 768kB 790kB/s
Collecting cryptography>=2.5 (from paramiko>=2.4.2; extra == "ssh"->docker[ssh]<5,>=3.7.0->docker-compose<1.26.0,>=1.25.2->awsebcli)
Downloading https://files.pythonhosted.org/packages/ca/9a/7cece52c46546e214e10811b36b2da52ce1ea7fa203203a629b8dfadad53/cryptography-2.8-cp34-abi3-manylinux2010_x86_64.whl (2.3MB)
|ββββββββββββββββββββββββββββββββ| 2.3MB 386kB/s
Collecting bcrypt>=3.1.3 (from paramiko>=2.4.2; extra == "ssh"->docker[ssh]<5,>=3.7.0->docker-compose<1.26.0,>=1.25.2->awsebcli)
Downloading https://files.pythonhosted.org/packages/8b/1d/82826443777dd4a624e38a08957b975e75df859b381ae302cfd7a30783ed/bcrypt-3.1.7-cp34-abi3-manylinux1_x86_64.whl (56kB)
|ββββββββββββββββββββββββββββββββ| 61kB 1.4MB/s
Collecting cffi>=1.4.1 (from pynacl>=1.0.1->paramiko>=2.4.2; extra == "ssh"->docker[ssh]<5,>=3.7.0->docker-compose<1.26.0,>=1.25.2->awsebcli)
Downloading https://files.pythonhosted.org/packages/ff/1d/0b743dadcdf4980b717163fd2d24cd18c1c0c7a78a076268afd7e0e2c25e/cffi-1.14.0-cp37-cp37m-manylinux1_x86_64.whl (400kB)
|ββββββββββββββββββββββββββββββββ| 409kB 823kB/s
Collecting pycparser (from cffi>=1.4.1->pynacl>=1.0.1->paramiko>=2.4.2; extra == "ssh"->docker[ssh]<5,>=3.7.0->docker-compose<1.26.0,>=1.25.2->awsebcli)
Downloading https://files.pythonhosted.org/packages/68/9e/49196946aee219aead1290e00d1e7fdeab8567783e83e1b9ab5585e6206a/pycparser-2.19.tar.gz (158kB)
|ββββββββββββββββββββββββββββββββ| 163kB 637kB/s
Building wheels for collected packages: awsebcli, cement, future, pathspec, PyYAML, termcolor, dockerpty, docopt, pyrsistent, pycparser
Building wheel for awsebcli (setup.py) ... done
Stored in directory: /root/.cache/pip/wheels/aa/b5/57/27c01e9a44f65fa0e6bc9b585c2fb97e9779f276b1e44d83ed
Building wheel for cement (setup.py) ... done
Stored in directory: /root/.cache/pip/wheels/35/9e/02/0af61a0ed625ea3decf29b8602fc0cbecc38943f19e076bb2e
Building wheel for future (setup.py) ... done
Stored in directory: /root/.cache/pip/wheels/bf/c9/a3/c538d90ef17cf7823fa51fc701a7a7a910a80f6a405bf15b1a
Building wheel for pathspec (setup.py) ... done
Stored in directory: /root/.cache/pip/wheels/45/cb/7e/ce6e6062c69446e39e328170524ca8213498bc66a74c6a210b
Building wheel for PyYAML (setup.py) ... done
Stored in directory: /root/.cache/pip/wheels/54/b7/c7/2ada654ee54483c9329871665aaf4a6056c3ce36f29cf66e67
Building wheel for termcolor (setup.py) ... done
Stored in directory: /root/.cache/pip/wheels/7c/06/54/bc84598ba1daf8f970247f550b175aaaee85f68b4b0c5ab2c6
Building wheel for dockerpty (setup.py) ... done
Stored in directory: /root/.cache/pip/wheels/e5/1e/86/bd0a97a0907c6c654af654d5875d1d4383dd1f575f77cee4aa
Building wheel for docopt (setup.py) ... done
Stored in directory: /root/.cache/pip/wheels/9b/04/dd/7daf4150b6d9b12949298737de9431a324d4b797ffd63f526e
Building wheel for pyrsistent (setup.py) ... done
Stored in directory: /root/.cache/pip/wheels/b5/78/ac/f26a78a989cd97f90981d96a560d7e1da5e1307284301d94e8
Building wheel for pycparser (setup.py) ... done
Stored in directory: /root/.cache/pip/wheels/f2/9a/90/de94f8556265ddc9d9c8b271b0f63e57b26fb1d67a45564511
Successfully built awsebcli cement future pathspec PyYAML termcolor dockerpty docopt pyrsistent pycparser
ERROR: awscli 1.18.0 has requirement botocore==1.15.0, but you'll have botocore 1.14.17 which is incompatible.
Installing collected packages: docutils, jmespath, six, python-dateutil, urllib3, botocore, cement, colorama, future, pathspec, PyYAML, certifi, idna, chardet, requests, semantic-version, termcolor, wcwidth, cached-property, dockerpty, websocket-client, attrs, pyrsistent, zipp, importlib-metadata, jsonschema, pycparser, cffi, pynacl, cryptography, bcrypt, paramiko, docker, texttable, docopt, docker-compose, blessed, awsebcli, pyasn1, rsa, s3transfer, awscli
Successfully installed PyYAML-5.2 attrs-19.3.0 awscli-1.18.0 awsebcli-3.17.1 bcrypt-3.1.7 blessed-1.17.2 botocore-1.14.17 cached-property-1.5.1 cement-2.8.2 certifi-2019.11.28 cffi-1.14.0 chardet-3.0.4 colorama-0.3.9 cryptography-2.8 docker-4.2.0 docker-compose-1.25.4 dockerpty-0.4.1 docopt-0.6.2 docutils-0.15.2 future-0.16.0 idna-2.7 importlib-metadata-1.5.0 jmespath-0.9.4 jsonschema-3.2.0 paramiko-2.7.1 pathspec-0.5.9 pyasn1-0.4.8 pycparser-2.19 pynacl-1.3.0 pyrsistent-0.15.7 python-dateutil-2.8.0 requests-2.20.1 rsa-3.4.2 s3transfer-0.3.3 semantic-version-2.5.0 six-1.11.0 termcolor-1.1.0 texttable-1.6.2 urllib3-1.24.3 wcwidth-0.1.8 websocket-client-0.57.0 zipp-2.2.0
Expected result
No such error: ERROR: awscli 1.18.0 has requirement botocore==1.15.0, but you'll have botocore 1.14.17 which is incompatible.
Dependencies should be in-line when installing most recent versions of both cli tools through pip.
Problems
No problems were caused by the error so far. awscli
seems to work fine within the scope that we need it.
Are you currently working around this issue?
Current workaround is to pin the versions:
pip3 install awsebcli==3.17.* awscli==1.17.*
Issue Analytics
- State:
- Created 4 years ago
- Reactions:8
- Comments:7 (3 by maintainers)
Top GitHub Comments
broken again,
The conflict is caused by: awscli 1.19.10 depends on botocore==1.20.10 awsebcli 3.19.3 depends on botocore<1.20.0 and >=1.19.0
@lanartri thank you for bringing this to our attention. This issue arise when installing awsebcli alongside a version of awscli that has upgraded botocore after the most recent release of awscli. We highly recommend using the EBCLI installation scripts to prevent requirement conflicts. Alternatively you can install EBCLI in virtual environment.
We have noted this issue and will be working to fix it in the coming weeks.