Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

pipenv: How to resolve dependency conflicts

I have this dependency issue:

Pipfile.lock not found, creating…
Locking [dev-packages] dependencies…
Locking [packages] dependencies…
Warning: Your dependencies could not be resolved. You likely have a mismatch in your sub-dependencies.
  You can use $ pipenv install --skip-lock to bypass this mechanism, then run $ pipenv graph to inspect the situation.
Could not find a version that matches futures<4.0.0,>=2.2.0,>=3.2.0; python_version < "3.2"
Tried: 0.2.python3, 0.1, 0.2, 1.0, 2.0, 2.1, 2.1.1, 2.1.2, 2.1.3, 2.1.4, 2.1.5, 2.1.5, 2.1.6, 2.1.6, 2.2.0, 2.2.0, 3.0.0, 3.0.0, 3.0.1, 3.0.1, 3.0.2, 3.0.2, 3.0.3, 3.0.3, 3.0.4, 3.0.4, 3.0.5, 3.0.5, 3.1.0, 3.1.0, 3.1.1, 3.1.1

There is obviously an issue. The only version of package futures that could resolve the conflict (="3.2.0") is not available.

edit:

I updated the message above. now the python version also comes into the conflict.

Whats are my options here? I would like to continue to use pipenv and the Pipfile.lock

edit

This is the graph genereated by pipenv. It took me a while to figure out that it does not work with pip v10 installed in the virtualenv. But now here it is.

pipenv graph

apiai==1.2.3
  - numpy [required: Any, installed: 1.14.3]
beautifulsoup4==4.6.0
boto3==1.7.15
  - botocore [required: >=1.10.15,<1.11.0, installed: 1.10.15]
    - docutils [required: >=0.10, installed: 0.14]
    - jmespath [required: >=0.7.1,<1.0.0, installed: 0.9.3]
    - python-dateutil [required: >=2.1,<3.0.0, installed: 2.7.2]
      - six [required: >=1.5, installed: 1.11.0]
  - jmespath [required: >=0.7.1,<1.0.0, installed: 0.9.3]
  - s3transfer [required: >=0.1.10,<0.2.0, installed: 0.1.13]
    - botocore [required: <2.0.0,>=1.3.0, installed: 1.10.15]
      - docutils [required: >=0.10, installed: 0.14]
      - jmespath [required: >=0.7.1,<1.0.0, installed: 0.9.3]
      - python-dateutil [required: >=2.1,<3.0.0, installed: 2.7.2]
        - six [required: >=1.5, installed: 1.11.0]
celery==4.1.0
  - billiard [required: >=3.5.0.2,<3.6.0, installed: 3.5.0.3]
  - kombu [required: >=4.0.2,<5.0, installed: 4.1.0]
    - amqp [required: <3.0,>=2.1.4, installed: 2.2.2]
      - vine [required: >=1.1.3, installed: 1.1.4]
  - pytz [required: >dev, installed: 2018.4]
dialogflow==0.5.1
  - google-api-core [required: >=0.1.4,<2.0.0dev, installed: 1.2.1]
    - google-auth [required: <2.0.0dev,>=0.4.0, installed: 1.5.0]
      - cachetools [required: >=2.0.0, installed: 2.1.0]
      - pyasn1-modules [required: >=0.2.1, installed: 0.2.2]
        - pyasn1 [required: <0.5.0,>=0.4.1, installed: 0.4.2]
      - rsa [required: >=3.1.4, installed: 3.4.2]
        - pyasn1 [required: >=0.1.3, installed: 0.4.2]
      - six [required: >=1.9.0, installed: 1.11.0]
    - googleapis-common-protos [required: <2.0dev,>=1.5.3, installed: 1.5.3]
      - protobuf [required: >=3.0.0, installed: 3.6.0]
        - setuptools [required: Any, installed: 40.0.0]
        - six [required: >=1.9, installed: 1.11.0]
    - protobuf [required: >=3.0.0, installed: 3.6.0]
      - setuptools [required: Any, installed: 40.0.0]
      - six [required: >=1.9, installed: 1.11.0]
    - pytz [required: Any, installed: 2018.4]
    - requests [required: <3.0.0dev,>=2.18.0, installed: 2.18.4]
      - certifi [required: >=2017.4.17, installed: 2018.4.16]
      - chardet [required: <3.1.0,>=3.0.2, installed: 3.0.4]
      - idna [required: <2.7,>=2.5, installed: 2.6]
      - urllib3 [required: <1.23,>=1.21.1, installed: 1.22]
    - setuptools [required: >=34.0.0, installed: 40.0.0]
    - six [required: >=1.10.0, installed: 1.11.0]
  - googleapis-common-protos [required: <2.0dev,>=1.5.2, installed: 1.5.3]
    - protobuf [required: >=3.0.0, installed: 3.6.0]
      - setuptools [required: Any, installed: 40.0.0]
      - six [required: >=1.9, installed: 1.11.0]
enum-compat==0.0.2
enum34==1.1.6
eventlet==0.23.0
  - greenlet [required: >=0.3, installed: 0.4.13]
Flask-Script==2.0.6
  - Flask [required: Any, installed: 1.0.2]
    - click [required: >=5.1, installed: 6.7]
    - itsdangerous [required: >=0.24, installed: 0.24]
    - Jinja2 [required: >=2.10, installed: 2.10]
      - MarkupSafe [required: >=0.23, installed: 1.0]
    - Werkzeug [required: >=0.14, installed: 0.14.1]
Flask-Scss==0.5
  - Flask [required: Any, installed: 1.0.2]
    - click [required: >=5.1, installed: 6.7]
    - itsdangerous [required: >=0.24, installed: 0.24]
    - Jinja2 [required: >=2.10, installed: 2.10]
      - MarkupSafe [required: >=0.23, installed: 1.0]
    - Werkzeug [required: >=0.14, installed: 0.14.1]
  - pyScss [required: Any, installed: 1.3.5]
    - six [required: Any, installed: 1.11.0]
Flask-SocketIO==3.0.0
  - Flask [required: >=0.9, installed: 1.0.2]
    - click [required: >=5.1, installed: 6.7]
    - itsdangerous [required: >=0.24, installed: 0.24]
    - Jinja2 [required: >=2.10, installed: 2.10]
      - MarkupSafe [required: >=0.23, installed: 1.0]
    - Werkzeug [required: >=0.14, installed: 0.14.1]
  - python-socketio [required: >=1.6.1, installed: 1.9.0]
    - python-engineio [required: >=1.2.1, installed: 2.1.0]
      - six [required: >=1.9.0, installed: 1.11.0]
    - six [required: >=1.9.0, installed: 1.11.0]
Flask-SQLAlchemy==2.3.2
  - Flask [required: >=0.10, installed: 1.0.2]
    - click [required: >=5.1, installed: 6.7]
    - itsdangerous [required: >=0.24, installed: 0.24]
    - Jinja2 [required: >=2.10, installed: 2.10]
      - MarkupSafe [required: >=0.23, installed: 1.0]
    - Werkzeug [required: >=0.14, installed: 0.14.1]
  - SQLAlchemy [required: >=0.8.0, installed: 1.2.7]
grpcio==1.13.0
  - six [required: >=1.5.2, installed: 1.11.0]
gunicorn==19.8.1
ipaddress==1.0.22
pprint==0.1
prismic==1.5.0
  - ndg-httpsclient [required: Any, installed: 0.5.0]
    - pyasn1 [required: >=0.1.1, installed: 0.4.2]
    - PyOpenSSL [required: Any, installed: 17.5.0]
      - cryptography [required: >=2.1.4, installed: 2.2.2]
        - asn1crypto [required: >=0.21.0, installed: 0.24.0]
        - cffi [required: >=1.7, installed: 1.11.5]
          - pycparser [required: Any, installed: 2.18]
        - idna [required: >=2.1, installed: 2.6]
        - six [required: >=1.4.1, installed: 1.11.0]
      - six [required: >=1.5.2, installed: 1.11.0]
  - pyasn1 [required: Any, installed: 0.4.2]
  - pyOpenSSL [required: Any, installed: 17.5.0]
    - cryptography [required: >=2.1.4, installed: 2.2.2]
      - asn1crypto [required: >=0.21.0, installed: 0.24.0]
      - cffi [required: >=1.7, installed: 1.11.5]
        - pycparser [required: Any, installed: 2.18]
      - idna [required: >=2.1, installed: 2.6]
      - six [required: >=1.4.1, installed: 1.11.0]
    - six [required: >=1.5.2, installed: 1.11.0]
  - requests [required: >=2.7, installed: 2.18.4]
    - certifi [required: >=2017.4.17, installed: 2018.4.16]
    - chardet [required: <3.1.0,>=3.0.2, installed: 3.0.4]
    - idna [required: <2.7,>=2.5, installed: 2.6]
    - urllib3 [required: <1.23,>=1.21.1, installed: 1.22]
psycopg2==2.7.4
pubnub==4.0.13
  - pycryptodomex [required: >=3.3, installed: 3.6.1]
  - requests [required: >=2.4, installed: 2.18.4]
    - certifi [required: >=2017.4.17, installed: 2018.4.16]
    - chardet [required: <3.1.0,>=3.0.2, installed: 3.0.4]
    - idna [required: <2.7,>=2.5, installed: 2.6]
    - urllib3 [required: <1.23,>=1.21.1, installed: 1.22]
  - six [required: >=1.10, installed: 1.11.0]
redis==2.10.6
simplejson==3.14.0
webassets==0.12.1
like image 773
caliph Avatar asked Jul 25 '18 06:07

caliph


People also ask

How can conflict dependency be resolved?

Enforcer can help developers solve dependency conflicts in Maven by analyzing all libraries declared in the POM file. The plugin uses a lot of different rules, but we are only interested in one: dependencyConvergence – ensures all dependencies converge to the same version.

How do you resolve conflicting dependency pip?

Unfortunately, pip makes no attempt to resolve dependency conflicts. For example, if you install two packages, package A may require a different version of a dependency than package B requires.

Does Pipenv install dependencies?

Use a Pipenv project Pipenv will read the Pipfile and Pipfile. lock files for the project, create the virtual environment, and install all of the dependencies as needed. Finally, if you want to use Pipenv to manage a project that currently uses a requirements.

Is Pipenv better than pip?

While pip can install Python packages, Pipenv is recommended as it's a higher-level tool that simplifies dependency management for common use cases. This does a user installation to prevent breaking any system-wide packages.


1 Answers

there's a long conversation about this topic here for some people pipenv lock --clear solved the problem, for me locking pylint and mypy (which caused the conflict) to the latest version, solved the problem.

like image 122
Monem Avatar answered Oct 01 '22 01:10

Monem