kuberdock-platform icon indicating copy to clipboard operation
kuberdock-platform copied to clipboard

Installation fails due to conflicting urllib3 version

Open NeolithEra opened this issue 6 years ago • 1 comments

Hi, users are unable to run kuberdock-platform due to dependency conflict with urllib3 package. As shown in the following full dependency graph of kuberdock-platform, kuberdock-platform requires urllib3==1.10.2,while requests==2.22.0 requires urllib3>=1.21.1,<1.26.

According to pip’s “first found wins” installation strategy, urllib3==1.10.2 is the actually installed version. However, urllib3==1.10.2 does not satisfy urllib3>=1.21.1,<1.26.

Dependency tree-------

kuberdock-platform(version range:)
| +-alembic(version range:==0.7.6)
| +-amqp(version range:==1.4.9)
| +-anyjson(version range:==0.3.3)
| +-argparse(version range:==1.2.1)
| +-billiard(version range:==3.3.0.18)
| +-bitmath(version range:==1.2.34)
| +-blinker(version range:==1.3)
| +-boto(version range:==2.38)
| +-celery(version range:==3.1.15)
| +-cerberus(version range:==0.9.1)
| +-click(version range:>=6.3)
| +-cloudflare(version range:==1.1.5)
| +-ecdsa(version range:==0.11)
| +-elasticsearch(version range:>=1.0)
| +-fabric(version range:==1.10.2)
| +-flask(version range:==0.10.1)
| | +-Werkzeug(version range:>=0.7)
| | +-Jinja2(version range:>=2.4)
| | +-itsdangerous(version range:>=0.21)
| +-flask-assets(version range:==0.10)
| | +-Flask(version range:>=0.8)
| | | +-Werkzeug(version range:>=0.15)
| | | +-Jinja2(version range:>=2.10.1)
| | | +-itsdangerous(version range:>=0.24)
| | | +-click(version range:>=5.1)
| | +-webassets(version range:>=0.10)
| +-flask-httpauth(version range:==2.3.0)
| +-flask-influxdb(version range:==0.1)
| +-flask-login(version range:==0.2.11)
| | +-Flask(version range:)
| | | +-Werkzeug(version range:>=0.15)
| | | +-Jinja2(version range:>=2.10.1)
| | | +-itsdangerous(version range:>=0.24)
| | | +-click(version range:>=5.1)
| +-flask-mail(version range:==0.9.1)
| | +-Flask(version range:)
| | | +-Werkzeug(version range:>=0.15)
| | | +-Jinja2(version range:>=2.10.1)
| | | +-itsdangerous(version range:>=0.24)
| | | +-click(version range:>=5.1)
| | +-blinker(version range:)
| +-flask-migrate(version range:==1.4.0)
| | +-Flask(version range:>=0.9)
| | | +-Werkzeug(version range:>=0.15)
| | | +-Jinja2(version range:>=2.10.1)
| | | +-itsdangerous(version range:>=0.24)
| | | +-click(version range:>=5.1)
| | +-Flask-SQLAlchemy(version range:>=1.0)
| | +-alembic(version range:>=0.6)
| | | +-SQLAlchemy(version range:>=0.9.0)
| | | +-Mako(version range:)
| | | +-python-editor(version range:>=0.3)
| | | +-python-dateutil(version range:)
| | | +-SQLAlchemy(version range:>=0.6.0)
| | | +-SQLAlchemy(version range:>=0.7.3)
| | | +-SQLAlchemy(version range:>=0.7.6)
| | +-Flask-Script(version range:>=0.6)
| | | +-Flask(version range:)
| | | | +-Werkzeug(version range:>=0.15)
| | | | +-Jinja2(version range:>=2.10.1)
| | | | +-itsdangerous(version range:>=0.24)
| | | | +-click(version range:>=5.1)
| +-flask-script(version range:==2.0.5)
| | +-Flask(version range:)
| | | +-Werkzeug(version range:>=0.15)
| | | +-Jinja2(version range:>=2.10.1)
| | | +-itsdangerous(version range:>=0.24)
| | | +-click(version range:>=5.1)
| +-flask-sqlalchemy(version range:==2.0)
| | +-Flask(version range:>=0.10)
| | | +-Werkzeug(version range:>=0.15)
| | | +-Jinja2(version range:>=2.10.1)
| | | +-itsdangerous(version range:>=0.24)
| | | +-click(version range:>=5.1)
| | +-SQLAlchemy(version range:)
| +-gevent(version range:==1.0.2)
| +-greenlet(version range:==0.4.7)
| +-influxdb(version range:==0.1.13)
| | +-requests(version range:>=1.0.3)
| | | +-chardet(version range:>=3.0.2,<3.1.0)
| | | +-idna(version range:>=2.5,<2.9)
| | | +-urllib3(version range:>=1.21.1,<1.26)
| | | +-certifi(version range:>=2017.4.17)
| +-ipaddress(version range:==1.0.7)
| +-itsdangerous(version range:==0.24)
| +-jinja2(version range:==2.7.3)
| | +-markupsafe(version range:)
| +-kombu(version range:==3.0.35)
| +-markupsafe(version range:==0.23)
| +-nose(version range:==1.3.4)
| +-paramiko(version range:==1.15.2)
| +-psycogreen(version range:==1.0)
| +-psycopg2(version range:==2.5.4)
| +-pyasn1(version range:==0.1.9)
| +-pycrypto(version range:==2.6.1)
| +-pyopenssl(version range:==16.2.0)
| +-python-dateutil(version range:==2.4.2)
| +-python-etcd(version range:==0.4.3)
| | +-urllib3(version range:>=1.7.1)
| | +-dnspython3(version range:)
| +-python-nginx(version range:)
| +-pytz(version range:==2014.7)
| +-pyyaml(version range:)
| +-raven(version range:>=5.12)
| +-redis(version range:==2.10.3)
| +-requests(version range:==2.4.3)
| +-simple-rbac(version range:==0.1.1)
| +-simplejson(version range:==3.8.2)
| +-sqlalchemy(version range:==0.9.7)
| +-sse(version range:==1.2)
| +-unidecode(version range:==0.04.17)
| +-urllib3(version range:==1.10.2)
| +-webassets(version range:==0.10.1)
| +-websocket-client(version range:)
| +-werkzeug(version range:==0.9.6)
| +-wsgiref(version range:==0.1.2)

Thanks for your help. Best, Neolith

NeolithEra avatar Jul 31 '19 16:07 NeolithEra

Solution

  1. Fix your direct dependency to be urllib3>=1.21.1,<1.26. I have checked this revision will not affect your downstream projects now.
  2. Fix your direct dependency to be urllib3>=1.21.1,<1.26 and make requests==2.22.0 as your direct dependency.

Which solution do you prefer, 1 or 2? @wncm Please let me know your choice. I can submit a PR to solve this issue.

NeolithEra avatar Jul 31 '19 17:07 NeolithEra