graysonhead / runcible

Declarative Automation for Network Engineers
GNU General Public License v3.0
3 stars 2 forks source link

Installation fails due to conflicting cryptography version #2

Closed NeolithEra closed 5 years ago

NeolithEra commented 5 years ago

@graysonhead Hi, users are unable to run runcible due to dependency conflict with cryptography package. As shown in the following full dependency graph of runcible, it directly requires cryptography==2.4.2 , while paramiko requires cryptography>=2.5 .

According to pip’s “first found wins” installation strategy, cryptography==2.4.2 is the actually installed version. However, cryptography==2.4.2 does not satisfy cryptography>=2.5.

Dependency tree------

----------------------------------------------------------------------------------------
Building runcible-0.0.5
----------------------------------------------------------------------------------------
runcible<version range:>
| +-colorama<version range:>=0.4.1>
| +-**_cryptography<version range:==2.4.2>_**
| +-mergedb<version range:>=0.0.11>
| | +-alabaster<version range:==0.7.12>
| | +-babel<version range:==2.6.0>
| | +-bleach<version range:==3.1.0>
| | +-certifi<version range:==2019.3.9>
| | +-chardet<version range:==3.0.4>
| | +-colorama<version range:==0.4.1>
| | +-coverage<version range:==4.5.3>
| | +-docutils<version range:==0.14>
| | +-idna<version range:==2.8>
| | +-imagesize<version range:==1.1.0>
| | +-jinja2<version range:==2.10.1>
| | +-markupsafe<version range:==1.1.1>
| | +-packaging<version range:==19.0>
| | +-pkginfo<version range:==1.5.0.1>
| | +-pprint<version range:==0.1>
| | +-pygments<version range:==2.4.0>
| | +-pyparsing<version range:==2.4.0>
| | +-pytz<version range:==2019.1>
| | +-pyyaml<version range:==5.1>
| | +-readme-renderer<version range:==24.0>
| | +-requests<version range:==2.22.0>
| | +-requests-toolbelt<version range:==0.9.1>
| | +-six<version range:==1.12.0>
| | +-snowballstemmer<version range:==1.2.1>
| | +-sphinx<version range:==2.0.1>
| | +-sphinx-rtd-theme<version range:==0.4.3>
| | +-sphinxcontrib-applehelp<version range:==1.0.1>
| | +-sphinxcontrib-devhelp<version range:==1.0.1>
| | +-sphinxcontrib-htmlhelp<version range:==1.0.2>
| | +-sphinxcontrib-jsmath<version range:==1.0.1>
| | +-sphinxcontrib-programoutput<version range:==0.14>
| | +-sphinxcontrib-qthelp<version range:==1.0.2>
| | +-sphinxcontrib-serializinghtml<version range:==1.1.3>
| | +-tqdm<version range:==4.32.1>
| | +-twine<version range:==1.13.0>
| | +-urllib3<version range:==1.25.3>
| | +-webencodings<version range:==0.5.1>
| +-paramiko<version range:>=2.4.2>
| | +-bcrypt<version range:>=3.1.1>
| | +-**_cryptography<version range:>=2.5>_**
| | +-pynacl<version range:>=1.0.1>
| +-pyyaml<version range:>=0.5.1>
-------

Solution------

  1. First solution: you can revise your direct dependency cryptography==2.4.2 to cryptography>=2.4.2.
  2. Second solution: revise your direct dependency paramiko=2.4.2 to paramiko>=2.4.2,<2.5. Then, it will transitively introduces cryptography>=1.5, which solves the conflicts.

Thanks for your help. Best, Neolith

NeolithEra commented 5 years ago

6

graysonhead commented 5 years ago

Thanks for raising this issue. This is fixed in 0.0.6.