Pipenv: Unexpected Error Resolving Satisfiable Dependencies with Pipenv 11

Created on 13 Mar 2018  Â·  50Comments  Â·  Source: pypa/pipenv

Hi All!

When running pipenv lock on a Pipfile containing pandas==0.18.1 and pandas-datareader==0.5.0, pipenv errors out claiming that it can't find a pandas version satisfying pandas==0.18.1,>=0.19.2, but pandas-datareader doesn't require pandas>=0.19.2 until 0.6.0. In particular, pandas-datareader==0.5.0 has the following requirements:

INSTALL_REQUIRES = (
    ['pandas>=0.17.0', 'requests>=2.3.0', 'requests-file', 'requests-ftp']
)

I don't see this behavior in earlier versions of pipenv. With pipenv 10.0, for example, the packages above resolve to the following reasonable-looking versions (hashes omitted for brevity):

        "certifi": {
            "version": "==2018.1.18"
        },
        "chardet": {
            "version": "==3.0.4"
        },
        "idna": {
            "version": "==2.6"
        },
        "numpy": {
            "version": "==1.14.2"
        },
        "pandas": {
            "version": "==0.18.1"
        },
        "pandas-datareader": {
            "version": "==0.5"
        },
        "python-dateutil": {
            "version": "==2.7.0"
        },
        "pytz": {
            "version": "==2018.3"
        },
        "requests": {
            "version": "==2.18.4"
        },
        "requests-file": {
            "version": "==1.4.3"
        },
        "requests-ftp": {
            "version": "==0.3.1"
        },
        "six": {
            "version": "==1.11.0"
        },
        "urllib3": {
            "version": "==1.22"
        }


System Info:

$ python -m pipenv.help

Pipenv version: '11.6.1'

Pipenv location: '/home/ssanderson/.virtualenvs/repro/local/lib/python2.7/site-packages/pipenv'

Python location: '/home/ssanderson/.virtualenvs/repro/bin/python'

Other Python installations in PATH:

  • 2.7: /home/ssanderson/.virtualenvs/repro/bin/python2.7
  • 2.7: /home/ssanderson/.virtualenvs/repro/bin/python2.7
  • 2.7: /usr/bin/python2.7
  • 3.5: /usr/bin/python3.5m
  • 3.5: /usr/bin/python3.5
  • 3.6: /usr/local/bin/python3.6m
  • 3.6: /usr/local/bin/python3.6
  • 3.6: /usr/local/bin/python3.6
  • 3.6: /usr/local/bin/python3.6

  • 2.7.12: /home/ssanderson/.virtualenvs/repro/bin/python

  • 2.7.12: /usr/bin/python
  • 2.7.12: /home/ssanderson/.virtualenvs/repro/bin/python2
  • 2.7.12: /usr/bin/python2
  • 3.5.2: /usr/bin/python3

PEP 508 Information:

{'implementation_name': 'cpython',
 'implementation_version': '0',
 'os_name': 'posix',
 'platform_machine': 'x86_64',
 'platform_python_implementation': 'CPython',
 'platform_release': '4.13.0-36-generic',
 'platform_system': 'Linux',
 'platform_version': '#40~16.04.1-Ubuntu SMP Fri Feb 16 23:25:58 UTC 2018',
 'python_full_version': '2.7.12',
 'python_version': '2.7',
 'sys_platform': 'linux2'}

System environment variables:

  • rvm_version
  • XDG_SESSION_TYPE
  • VIRTUALENVWRAPPER_SCRIPT
  • VIRTUAL_ENV
  • SHELL
  • XDG_DATA_DIRS
  • CONSUL_HTTP_ADDR
  • PROJECTS_ROOT
  • WORKON_HOME
  • XDG_RUNTIME_DIR
  • _system_type
  • XDG_SESSION_ID
  • DESKTOP_SESSION
  • _system_version
  • rvm_path
  • USER
  • XDG_VTNR
  • PYTHONUNBUFFERED
  • PS1
  • XAUTHORITY
  • LANGUAGE
  • SHLVL
  • QT_QPA_PLATFORMTHEME
  • WINDOWID
  • EDITOR
  • TMUX_PLUGIN_MANAGER_PATH
  • XDG_SESSION_DESKTOP
  • EVENT_NOEPOLL
  • TMUX
  • GDMSESSION
  • XDG_SEAT_PATH
  • PIP_PYTHON_PATH
  • _
  • _system_name
  • XDG_GREETER_DATA_DIR
  • PKG_CONFIG_PATH
  • HOME
  • DISPLAY
  • LANG
  • VIRTUALENVWRAPPER_PYTHON
  • _system_arch
  • rvm_prefix
  • VTE_VERSION
  • VIRTUALENVWRAPPER_HOOK_DIR
  • LOGNAME
  • TMUX_PANE
  • GDM_LANG
  • XDG_SEAT
  • PATH
  • SSH_AGENT_PID
  • TERM
  • VIRTUALENVWRAPPER_WORKON_CD
  • XDG_SESSION_PATH
  • rvm_bin_path
  • SSH_AUTH_SOCK
  • VIRTUALENVWRAPPER_PROJECT_FILENAME
  • OLDPWD
  • PWD

Pipenv–specific environment variables:

Debug–specific environment variables:

  • PATH: /home/ssanderson/.virtualenvs/repro/bin:/home/ssanderson/.cargo/bin:/usr/local/heroku/bin:/home/ssanderson/bin:/home/ssanderson/.local/bin:/usr/local/bin:/usr/local/sbin:/home/ssanderson/.cargo/bin:/usr/local/heroku/bin:/home/ssanderson/bin:/home/ssanderson/.local/bin:/usr/local/bin:/usr/local/sbin:/home/ssanderson/bin:/home/ssanderson/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/home/ssanderson/.rvm/bin
  • SHELL: /bin/bash
  • EDITOR: emacs -nw
  • LANG: en_US.UTF-8
  • PWD: /home/ssanderson/quantopian/repro
  • VIRTUAL_ENV: /home/ssanderson/.virtualenvs/repro

Contents of Pipfile ('/home/ssanderson/quantopian/repro/Pipfile'):

[[source]]

url = "https://pypi.python.org/simple"
verify_ssl = true
name = "pypi"


[requires]

python_version = "2.7"

[packages]

pandas-datareader = "==0.5"
pandas = "==0.18.1"



Expected result

I expected the Pipfile listed above to resolve to something like the set of dependencies that pipenv 10 finds successfully.

Actual result

pipenv appears to think that pandas-datareader always requires pandas>=0.19, which eventually causes a dependency resolution failure.

(repro) [~/quantopian/repro]$ pipenv lock --clear --verbose

Provide the steps to replicate (which usually at least includes the commands and the Pipfile).

Courtesy Notice: Pipenv found itself running within a virtual environment, so it will automatically use that environment, instead of creating its own for any project.
Locking [dev-packages] dependencies…
Using pip: -i https://pypi.python.org/simple

                          ROUND 1
Current constraints:

Finding the best candidates:

Finding secondary dependencies:
------------------------------------------------------------
Result of round 1: stable, done

Locking [packages] dependencies…
Using pip: -i https://pypi.python.org/simple

                          ROUND 1
Current constraints:
  pandas==0.18.1
  pandas-datareader==0.5

Finding the best candidates:
  found candidate pandas==0.18.1 (constraint was ==0.18.1)
  found candidate pandas-datareader==0.5 (constraint was ==0.5)

Finding secondary dependencies:
  pandas==0.18.1            requires numpy>=1.7.0, python-dateutil, pytz>=2011k
  pandas-datareader==0.5    requires lxml, pandas>=0.19.2, requests-file, requests-ftp, requests>=2.3.0, wrapt

New dependencies found in this round:
  adding [u'lxml', '', '[]']
  adding [u'numpy', '>=1.7.0', '[]']
  adding [u'pandas', '>=0.19.2', '[]']
  adding [u'python-dateutil', '', '[]']
  adding [u'pytz', '>=2011k', '[]']
  adding [u'requests', '>=2.3.0', '[]']
  adding [u'requests-file', '', '[]']
  adding [u'requests-ftp', '', '[]']
  adding [u'wrapt', '', '[]']
Removed dependencies in this round:
Unsafe dependencies in this round:
------------------------------------------------------------
Result of round 1: not stable

                          ROUND 2
Current constraints:
  lxml
  numpy>=1.7.0
  pandas==0.18.1,>=0.19.2
  pandas-datareader==0.5
  python-dateutil
  pytz>=2011k
  requests>=2.3.0
  requests-file
  requests-ftp
  wrapt

Finding the best candidates:
  found candidate lxml==4.1.1 (constraint was <any>)
  found candidate numpy==1.14.2 (constraint was >=1.7.0)
Using pip: -i https://pypi.python.org/simple

                          ROUND 1
Current constraints:
  pandas==0.18.1
  pandas-datareader==0.5

Finding the best candidates:
  found candidate pandas==0.18.1 (constraint was ==0.18.1)
  found candidate pandas-datareader==0.5 (constraint was ==0.5)

Finding secondary dependencies:
  pandas==0.18.1            requires numpy>=1.7.0, python-dateutil, pytz>=2011k
  pandas-datareader==0.5    requires lxml, pandas>=0.19.2, requests-file, requests-ftp, requests>=2.3.0, wrapt

New dependencies found in this round:
  adding [u'lxml', '', '[]']
  adding [u'numpy', '>=1.7.0', '[]']
  adding [u'pandas', '>=0.19.2', '[]']
  adding [u'python-dateutil', '', '[]']
  adding [u'pytz', '>=2011k', '[]']
  adding [u'requests', '>=2.3.0', '[]']
  adding [u'requests-file', '', '[]']
  adding [u'requests-ftp', '', '[]']
  adding [u'wrapt', '', '[]']
Removed dependencies in this round:
Unsafe dependencies in this round:
------------------------------------------------------------
Result of round 1: not stable

                          ROUND 2
Current constraints:
  lxml
  numpy>=1.7.0
  pandas==0.18.1,>=0.19.2
  pandas-datareader==0.5
  python-dateutil
  pytz>=2011k
  requests>=2.3.0
  requests-file
  requests-ftp
  wrapt

Finding the best candidates:
  found candidate lxml==4.1.1 (constraint was <any>)
  found candidate numpy==1.14.2 (constraint was >=1.7.0)

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 pandas==0.18.1,>=0.19.2
Tried: 0.3.0.beta.win32, 0.3.0.beta2.win32, 0.3.0.win-amd64, 0.3.0.win32, 0.4.0.win-amd64, 0.4.0.win32, 0.4.1.win-amd64, 0.4.1.win32, 0.4.2.win-amd64, 0.4.2.win32, 0.4.3.win-amd64, 0.4.3.win32, 0.5.0.win-amd64, 0.5.0.win32, 0.6.0.win-amd64, 0.6.0.win32, 0.6.1.win-amd64, 0.6.1.win32, 0.7.0rc1.win-amd64, 0.7.0rc1.win32, 0.7.0.win-amd64, 0.7.0.win32, 0.7.1.win-amd64, 0.7.1.win32, 0.7.2.win-amd64, 0.7.2.win32, 0.7.3.win-amd64, 0.7.3.win32, 0.8.0rc2.win-amd64, 0.8.0rc2.win32, 0.8.0.win-amd64, 0.8.0.win32, 0.8.1.win-amd64, 0.8.1.win32, 0.9.0.win-amd64, 0.9.0.win32, 0.9.1.win-amd64, 0.9.1.win32, 0.10.0.win-amd64, 0.10.0.win32, 0.10.1.win-amd64, 0.10.1.win32, 0.11.0.win-amd64, 0.11.0.win32, 0.12.0.win-amd64, 0.12.0.win32, 0.13.0.win-amd64, 0.13.0.win32, 0.13.1.win-amd64, 0.13.1.win32, 0.14.0.win-amd64, 0.14.0.win32, 0.14.1.win-amd64, 0.14.1.win32, 0.15.0.win-amd64, 0.15.0.win32, 0.15.1.win-amd64, 0.15.1.win32, 0.15.2.win-amd64, 0.15.2.win32, 0.1, 0.2b0, 0.2b1, 0.2, 0.3.0b0, 0.3.0b2, 0.3.0, 0.4.0, 0.4.1, 0.4.2, 0.4.3, 0.5.0, 0.6.0, 0.6.1, 0.7.0rc1, 0.7.0rc1, 0.7.0, 0.7.0, 0.7.1, 0.7.1, 0.7.2, 0.7.2, 0.7.3, 0.7.3, 0.8.0rc1, 0.8.0rc1, 0.8.0rc2, 0.8.0rc2, 0.8.0, 0.8.0, 0.8.1, 0.8.1, 0.9.0, 0.9.0, 0.9.1, 0.9.1, 0.10.0, 0.10.0, 0.10.1, 0.10.1, 0.11.0, 0.11.0, 0.12.0, 0.12.0, 0.13.0, 0.13.1, 0.13.1, 0.14.0, 0.14.0, 0.14.0, 0.14.0, 0.14.0, 0.14.1, 0.14.1, 0.14.1, 0.14.1, 0.14.1, 0.14.1, 0.15.0, 0.15.0, 0.15.0, 0.15.0, 0.15.0, 0.15.0, 0.15.1, 0.15.1, 0.15.1, 0.15.1, 0.15.1, 0.15.1, 0.15.2, 0.15.2, 0.15.2, 0.15.2, 0.15.2, 0.15.2, 0.15.2, 0.15.2, 0.15.2, 0.15.2, 0.15.2, 0.15.2, 0.15.2, 0.15.2, 0.15.2, 0.15.2, 0.16.0, 0.16.0, 0.16.0, 0.16.0, 0.16.0, 0.16.0, 0.16.0, 0.16.0, 0.16.0, 0.16.0, 0.16.0, 0.16.0, 0.16.0, 0.16.0, 0.16.1, 0.16.1, 0.16.1, 0.16.1, 0.16.1, 0.16.1, 0.16.1, 0.16.1, 0.16.1, 0.16.1, 0.16.1, 0.16.1, 0.16.1, 0.16.1, 0.16.2, 0.16.2, 0.16.2, 0.16.2, 0.16.2, 0.16.2, 0.16.2, 0.16.2, 0.16.2, 0.16.2, 0.16.2, 0.16.2, 0.16.2, 0.16.2, 0.17.0, 0.17.0, 0.17.0, 0.17.0, 0.17.0, 0.17.0, 0.17.0, 0.17.0, 0.17.0, 0.17.0, 0.17.0, 0.17.0, 0.17.0, 0.17.0, 0.17.1, 0.17.1, 0.17.1, 0.17.1, 0.17.1, 0.17.1, 0.17.1, 0.17.1, 0.17.1, 0.17.1, 0.17.1, 0.17.1, 0.17.1, 0.17.1, 0.18.0, 0.18.0, 0.18.0, 0.18.0, 0.18.0, 0.18.0, 0.18.0, 0.18.0, 0.18.0, 0.18.0, 0.18.1, 0.18.1, 0.18.1, 0.18.1, 0.18.1, 0.18.1, 0.18.1, 0.18.1, 0.18.1, 0.18.1, 0.18.1, 0.18.1, 0.18.1, 0.18.1, 0.18.1, 0.18.1, 0.18.1, 0.19.0rc1, 0.19.0rc1, 0.19.0rc1, 0.19.0rc1, 0.19.0rc1, 0.19.0rc1, 0.19.0rc1, 0.19.0rc1, 0.19.0rc1, 0.19.0rc1, 0.19.0rc1, 0.19.0rc1, 0.19.0rc1, 0.19.0rc1, 0.19.0rc1, 0.19.0, 0.19.0, 0.19.0, 0.19.0, 0.19.0, 0.19.0, 0.19.0, 0.19.0, 0.19.0, 0.19.0, 0.19.0, 0.19.0, 0.19.0, 0.19.0, 0.19.0, 0.19.1, 0.19.1, 0.19.1, 0.19.1, 0.19.1, 0.19.1, 0.19.1, 0.19.1, 0.19.1, 0.19.1, 0.19.1, 0.19.1, 0.19.1, 0.19.1, 0.19.1, 0.19.1, 0.19.1, 0.19.1, 0.19.1, 0.19.2, 0.19.2, 0.19.2, 0.19.2, 0.19.2, 0.19.2, 0.19.2, 0.19.2, 0.19.2, 0.19.2, 0.19.2, 0.19.2, 0.19.2, 0.19.2, 0.19.2, 0.19.2, 0.19.2, 0.19.2, 0.20.0rc1, 0.20.0rc1, 0.20.0rc1, 0.20.0rc1, 0.20.0rc1, 0.20.0rc1, 0.20.0rc1, 0.20.0rc1, 0.20.0rc1, 0.20.0rc1, 0.20.0rc1, 0.20.0rc1, 0.20.0rc1, 0.20.0rc1, 0.20.0rc1, 0.20.0rc1, 0.20.0rc1, 0.20.0rc1, 0.20.0rc1, 0.20.0rc1, 0.20.0rc1, 0.20.0rc1, 0.20.0rc1, 0.20.0, 0.20.0, 0.20.0, 0.20.0, 0.20.0, 0.20.0, 0.20.0, 0.20.0, 0.20.0, 0.20.1, 0.20.1, 0.20.1, 0.20.1, 0.20.1, 0.20.1, 0.20.1, 0.20.1, 0.20.1, 0.20.1, 0.20.1, 0.20.1, 0.20.1, 0.20.1, 0.20.1, 0.20.1, 0.20.1, 0.20.1, 0.20.1, 0.20.1, 0.20.1, 0.20.1, 0.20.1, 0.20.2, 0.20.2, 0.20.2, 0.20.2, 0.20.2, 0.20.2, 0.20.2, 0.20.2, 0.20.2, 0.20.2, 0.20.2, 0.20.2, 0.20.2, 0.20.2, 0.20.2, 0.20.2, 0.20.2, 0.20.2, 0.20.2, 0.20.2, 0.20.2, 0.20.2, 0.20.2, 0.20.3, 0.20.3, 0.20.3, 0.20.3, 0.20.3, 0.20.3, 0.20.3, 0.20.3, 0.20.3, 0.20.3, 0.20.3, 0.20.3, 0.20.3, 0.20.3, 0.20.3, 0.20.3, 0.20.3, 0.20.3, 0.20.3, 0.20.3, 0.20.3, 0.20.3, 0.20.3, 0.20.3, 0.21.0rc1, 0.21.0rc1, 0.21.0rc1, 0.21.0rc1, 0.21.0rc1, 0.21.0rc1, 0.21.0rc1, 0.21.0rc1, 0.21.0rc1, 0.21.0rc1, 0.21.0rc1, 0.21.0rc1, 0.21.0rc1, 0.21.0rc1, 0.21.0rc1, 0.21.0rc1, 0.21.0rc1, 0.21.0, 0.21.0, 0.21.0, 0.21.0, 0.21.0, 0.21.0, 0.21.0, 0.21.0, 0.21.0, 0.21.0, 0.21.0, 0.21.0, 0.21.0, 0.21.0, 0.21.0, 0.21.0, 0.21.0, 0.21.1, 0.21.1, 0.21.1, 0.21.1, 0.21.1, 0.21.1, 0.21.1, 0.21.1, 0.21.1, 0.21.1, 0.21.1, 0.21.1, 0.21.1, 0.21.1, 0.21.1, 0.22.0, 0.22.0, 0.22.0, 0.22.0, 0.22.0, 0.22.0, 0.22.0, 0.22.0, 0.22.0, 0.22.0, 0.22.0, 0.22.0, 0.22.0, 0.22.0, 0.22.0
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 pandas==0.18.1,>=0.19.2
Tried: 0.3.0.beta.win32, 0.3.0.beta2.win32, 0.3.0.win-amd64, 0.3.0.win32, 0.4.0.win-amd64, 0.4.0.win32, 0.4.1.win-amd64, 0.4.1.win32, 0.4.2.win-amd64, 0.4.2.win32, 0.4.3.win-amd64, 0.4.3.win32, 0.5.0.win-amd64, 0.5.0.win32, 0.6.0.win-amd64, 0.6.0.win32, 0.6.1.win-amd64, 0.6.1.win32, 0.7.0rc1.win-amd64, 0.7.0rc1.win32, 0.7.0.win-amd64, 0.7.0.win32, 0.7.1.win-amd64, 0.7.1.win32, 0.7.2.win-amd64, 0.7.2.win32, 0.7.3.win-amd64, 0.7.3.win32, 0.8.0rc2.win-amd64, 0.8.0rc2.win32, 0.8.0.win-amd64, 0.8.0.win32, 0.8.1.win-amd64, 0.8.1.win32, 0.9.0.win-amd64, 0.9.0.win32, 0.9.1.win-amd64, 0.9.1.win32, 0.10.0.win-amd64, 0.10.0.win32, 0.10.1.win-amd64, 0.10.1.win32, 0.11.0.win-amd64, 0.11.0.win32, 0.12.0.win-amd64, 0.12.0.win32, 0.13.0.win-amd64, 0.13.0.win32, 0.13.1.win-amd64, 0.13.1.win32, 0.14.0.win-amd64, 0.14.0.win32, 0.14.1.win-amd64, 0.14.1.win32, 0.15.0.win-amd64, 0.15.0.win32, 0.15.1.win-amd64, 0.15.1.win32, 0.15.2.win-amd64, 0.15.2.win32, 0.1, 0.2b0, 0.2b1, 0.2, 0.3.0b0, 0.3.0b2, 0.3.0, 0.4.0, 0.4.1, 0.4.2, 0.4.3, 0.5.0, 0.6.0, 0.6.1, 0.7.0rc1, 0.7.0rc1, 0.7.0, 0.7.0, 0.7.1, 0.7.1, 0.7.2, 0.7.2, 0.7.3, 0.7.3, 0.8.0rc1, 0.8.0rc1, 0.8.0rc2, 0.8.0rc2, 0.8.0, 0.8.0, 0.8.1, 0.8.1, 0.9.0, 0.9.0, 0.9.1, 0.9.1, 0.10.0, 0.10.0, 0.10.1, 0.10.1, 0.11.0, 0.11.0, 0.12.0, 0.12.0, 0.13.0, 0.13.1, 0.13.1, 0.14.0, 0.14.0, 0.14.0, 0.14.0, 0.14.0, 0.14.1, 0.14.1, 0.14.1, 0.14.1, 0.14.1, 0.14.1, 0.15.0, 0.15.0, 0.15.0, 0.15.0, 0.15.0, 0.15.0, 0.15.1, 0.15.1, 0.15.1, 0.15.1, 0.15.1, 0.15.1, 0.15.2, 0.15.2, 0.15.2, 0.15.2, 0.15.2, 0.15.2, 0.15.2, 0.15.2, 0.15.2, 0.15.2, 0.15.2, 0.15.2, 0.15.2, 0.15.2, 0.15.2, 0.15.2, 0.16.0, 0.16.0, 0.16.0, 0.16.0, 0.16.0, 0.16.0, 0.16.0, 0.16.0, 0.16.0, 0.16.0, 0.16.0, 0.16.0, 0.16.0, 0.16.0, 0.16.1, 0.16.1, 0.16.1, 0.16.1, 0.16.1, 0.16.1, 0.16.1, 0.16.1, 0.16.1, 0.16.1, 0.16.1, 0.16.1, 0.16.1, 0.16.1, 0.16.2, 0.16.2, 0.16.2, 0.16.2, 0.16.2, 0.16.2, 0.16.2, 0.16.2, 0.16.2, 0.16.2, 0.16.2, 0.16.2, 0.16.2, 0.16.2, 0.17.0, 0.17.0, 0.17.0, 0.17.0, 0.17.0, 0.17.0, 0.17.0, 0.17.0, 0.17.0, 0.17.0, 0.17.0, 0.17.0, 0.17.0, 0.17.0, 0.17.1, 0.17.1, 0.17.1, 0.17.1, 0.17.1, 0.17.1, 0.17.1, 0.17.1, 0.17.1, 0.17.1, 0.17.1, 0.17.1, 0.17.1, 0.17.1, 0.18.0, 0.18.0, 0.18.0, 0.18.0, 0.18.0, 0.18.0, 0.18.0, 0.18.0, 0.18.0, 0.18.0, 0.18.1, 0.18.1, 0.18.1, 0.18.1, 0.18.1, 0.18.1, 0.18.1, 0.18.1, 0.18.1, 0.18.1, 0.18.1, 0.18.1, 0.18.1, 0.18.1, 0.18.1, 0.18.1, 0.18.1, 0.19.0rc1, 0.19.0rc1, 0.19.0rc1, 0.19.0rc1, 0.19.0rc1, 0.19.0rc1, 0.19.0rc1, 0.19.0rc1, 0.19.0rc1, 0.19.0rc1, 0.19.0rc1, 0.19.0rc1, 0.19.0rc1, 0.19.0rc1, 0.19.0rc1, 0.19.0, 0.19.0, 0.19.0, 0.19.0, 0.19.0, 0.19.0, 0.19.0, 0.19.0, 0.19.0, 0.19.0, 0.19.0, 0.19.0, 0.19.0, 0.19.0, 0.19.0, 0.19.1, 0.19.1, 0.19.1, 0.19.1, 0.19.1, 0.19.1, 0.19.1, 0.19.1, 0.19.1, 0.19.1, 0.19.1, 0.19.1, 0.19.1, 0.19.1, 0.19.1, 0.19.1, 0.19.1, 0.19.1, 0.19.1, 0.19.2, 0.19.2, 0.19.2, 0.19.2, 0.19.2, 0.19.2, 0.19.2, 0.19.2, 0.19.2, 0.19.2, 0.19.2, 0.19.2, 0.19.2, 0.19.2, 0.19.2, 0.19.2, 0.19.2, 0.19.2, 0.20.0rc1, 0.20.0rc1, 0.20.0rc1, 0.20.0rc1, 0.20.0rc1, 0.20.0rc1, 0.20.0rc1, 0.20.0rc1, 0.20.0rc1, 0.20.0rc1, 0.20.0rc1, 0.20.0rc1, 0.20.0rc1, 0.20.0rc1, 0.20.0rc1, 0.20.0rc1, 0.20.0rc1, 0.20.0rc1, 0.20.0rc1, 0.20.0rc1, 0.20.0rc1, 0.20.0rc1, 0.20.0rc1, 0.20.0, 0.20.0, 0.20.0, 0.20.0, 0.20.0, 0.20.0, 0.20.0, 0.20.0, 0.20.0, 0.20.1, 0.20.1, 0.20.1, 0.20.1, 0.20.1, 0.20.1, 0.20.1, 0.20.1, 0.20.1, 0.20.1, 0.20.1, 0.20.1, 0.20.1, 0.20.1, 0.20.1, 0.20.1, 0.20.1, 0.20.1, 0.20.1, 0.20.1, 0.20.1, 0.20.1, 0.20.1, 0.20.2, 0.20.2, 0.20.2, 0.20.2, 0.20.2, 0.20.2, 0.20.2, 0.20.2, 0.20.2, 0.20.2, 0.20.2, 0.20.2, 0.20.2, 0.20.2, 0.20.2, 0.20.2, 0.20.2, 0.20.2, 0.20.2, 0.20.2, 0.20.2, 0.20.2, 0.20.2, 0.20.3, 0.20.3, 0.20.3, 0.20.3, 0.20.3, 0.20.3, 0.20.3, 0.20.3, 0.20.3, 0.20.3, 0.20.3, 0.20.3, 0.20.3, 0.20.3, 0.20.3, 0.20.3, 0.20.3, 0.20.3, 0.20.3, 0.20.3, 0.20.3, 0.20.3, 0.20.3, 0.20.3, 0.21.0rc1, 0.21.0rc1, 0.21.0rc1, 0.21.0rc1, 0.21.0rc1, 0.21.0rc1, 0.21.0rc1, 0.21.0rc1, 0.21.0rc1, 0.21.0rc1, 0.21.0rc1, 0.21.0rc1, 0.21.0rc1, 0.21.0rc1, 0.21.0rc1, 0.21.0rc1, 0.21.0rc1, 0.21.0, 0.21.0, 0.21.0, 0.21.0, 0.21.0, 0.21.0, 0.21.0, 0.21.0, 0.21.0, 0.21.0, 0.21.0, 0.21.0, 0.21.0, 0.21.0, 0.21.0, 0.21.0, 0.21.0, 0.21.1, 0.21.1, 0.21.1, 0.21.1, 0.21.1, 0.21.1, 0.21.1, 0.21.1, 0.21.1, 0.21.1, 0.21.1, 0.21.1, 0.21.1, 0.21.1, 0.21.1, 0.22.0, 0.22.0, 0.22.0, 0.22.0, 0.22.0, 0.22.0, 0.22.0, 0.22.0, 0.22.0, 0.22.0, 0.22.0, 0.22.0, 0.22.0, 0.22.0, 0.22.0q
Dependency Resolution Type Discussion

Most helpful comment

I was able to recreate this issue with `pipenv-resolver pandas-datareader==0.5.0 pandas==0.18.1", using:

$ pipenv --version
pipenv, version 11.6.1

I believe the source of the dependency conflict is in pipenv.patched.notpip.index.PackageFinder.find_requirement, with the value of ignore_compatiblity=True. (Which was recently changed with this patch, https://github.com/pypa/pipenv/commit/4e906e4bc0df095ed3d61d4d283af02c76ec76d2#diff-6793f5b689d9956dc9b6c175038b718dR491)

When ignore_compatibility is True, and the spec for pandas-datareader is pandas-datareader==0.5.0, the spec is ignored, and all available candidates that are listed on PyPI are considered. The best_candidate value in the find_requirements method is then set to 0.6.0, instead of 0.5.0, which adds a constraint of pandas>=0.19.2. The correct pandas constraint for pandas-datareader==0.5.0 is pandas>=0.17.0.

Here is a table of the expected constraints for pandas-datareader with links to the project's setup.py:

| pandas-datareader version | pandas contsraint | setup.py link |
|-------------------------------------|--------------------------|-------------------|
| 0.5.0 | >=0.17.0 | https://github.com/pydata/pandas-datareader/blob/331e3895c51326e87e69325e1a14f1e350cb832e/setup.py#L28 |
| 0.6.0 | >=0.19.0 | https://github.com/pydata/pandas-datareader/blob/0debb023ba90ec57b6dd134a2003cb07aeea66a4/setup.py#L17 |

The following patch, which sets the default value of find_requirements to False, allows a successful invocation of the pipenv-resolver pandas-datareader==0.5.0 pandas==0.18.1. (Clearing the depcache before re-running the command is also required.)

modified   pipenv/patched/notpip/index.py
@@ -488,7 +488,7 @@ class PackageFinder(object):
             dependency_versions
         )

-    def find_requirement(self, req, upgrade, ignore_compatibility=True):
+    def find_requirement(self, req, upgrade, ignore_compatibility=False):
         """Try to find a Link matching req

         Expects req, an InstallRequirement and upgrade, a boolean

I am not yet sure if changing that default value will break any other use cases, or cause a regression on https://github.com/pypa/pipenv/issues/1667, the issue which is mentioned in the patch that added the ignore_compatibility flag.

All 50 comments

I was able to recreate this issue with `pipenv-resolver pandas-datareader==0.5.0 pandas==0.18.1", using:

$ pipenv --version
pipenv, version 11.6.1

I believe the source of the dependency conflict is in pipenv.patched.notpip.index.PackageFinder.find_requirement, with the value of ignore_compatiblity=True. (Which was recently changed with this patch, https://github.com/pypa/pipenv/commit/4e906e4bc0df095ed3d61d4d283af02c76ec76d2#diff-6793f5b689d9956dc9b6c175038b718dR491)

When ignore_compatibility is True, and the spec for pandas-datareader is pandas-datareader==0.5.0, the spec is ignored, and all available candidates that are listed on PyPI are considered. The best_candidate value in the find_requirements method is then set to 0.6.0, instead of 0.5.0, which adds a constraint of pandas>=0.19.2. The correct pandas constraint for pandas-datareader==0.5.0 is pandas>=0.17.0.

Here is a table of the expected constraints for pandas-datareader with links to the project's setup.py:

| pandas-datareader version | pandas contsraint | setup.py link |
|-------------------------------------|--------------------------|-------------------|
| 0.5.0 | >=0.17.0 | https://github.com/pydata/pandas-datareader/blob/331e3895c51326e87e69325e1a14f1e350cb832e/setup.py#L28 |
| 0.6.0 | >=0.19.0 | https://github.com/pydata/pandas-datareader/blob/0debb023ba90ec57b6dd134a2003cb07aeea66a4/setup.py#L17 |

The following patch, which sets the default value of find_requirements to False, allows a successful invocation of the pipenv-resolver pandas-datareader==0.5.0 pandas==0.18.1. (Clearing the depcache before re-running the command is also required.)

modified   pipenv/patched/notpip/index.py
@@ -488,7 +488,7 @@ class PackageFinder(object):
             dependency_versions
         )

-    def find_requirement(self, req, upgrade, ignore_compatibility=True):
+    def find_requirement(self, req, upgrade, ignore_compatibility=False):
         """Try to find a Link matching req

         Expects req, an InstallRequirement and upgrade, a boolean

I am not yet sure if changing that default value will break any other use cases, or cause a regression on https://github.com/pypa/pipenv/issues/1667, the issue which is mentioned in the patch that added the ignore_compatibility flag.

Thanks for tracking this down. I know there were other issues with the == operator and it seems likely that this is related

This — this is the current issue we have. This is a great issue reproducing it. Thank you.

Closing other issues for this one.

wait, $ pipenv-resolver pandas-datareader==0.5.0 pandas==0.18.1 works fine for me.

pipenv-resolver pandas-datareader==0.5.0 pandas==0.18.1                         1071ms î‚ł Tue Mar 13 09:45:07 2018
RESULTS:
[{"name": "numpy", "version": "1.14.2", "hashes": ["sha256:facc6f925c3099ac01a1f03758100772560a0b020fb9d70f210404be08006bcb", "sha256:6be6b0ca705321c178c9858e5ad5611af664bbdfae1df1541f938a840a103888", "sha256:d0928076d9bd8a98de44e79b1abe50c1456e7abbb40af7ef58092086f1a6c729", "sha256:0fd65cbbfdbf76bbf80c445d923b3accefea0fe2c2082049e0ce947c81fe1d3f", "sha256:0739146eaf4985962f07c62f7133aca89f3a600faac891ce6c7f3a1e2afe5272", "sha256:0f6a5ed0cd7ab1da11f5c07a8ecada73fc55a70ef7bb6311a4109891341d7277", "sha256:a958bf9d4834c72dee4f91a0476e7837b8a2966dc6fcfc42c421405f98d0da51", "sha256:675e0f23967ce71067d12b6944add505d5f0a251f819cfb44bdf8ee7072c090d", "sha256:528ce59ded2008f9e8543e0146acb3a98a9890da00adf8904b1e18c82099418b", "sha256:f2b1378b63bdb581d5d7af2ec0373c8d40d651941d283a2afd7fc71184b3f570", "sha256:768e777cc1ffdbf97c507f65975c8686ebafe0f3dc8925d02ac117acc4669ce9", "sha256:99051e03b445117b26028623f1a487112ddf61a09a27e2d25e6bc07d37d94f25", "sha256:07e21f14490324cc1160db101e9b6c1233c33985af4cb1d301dd02650fea1d7f", "sha256:e6120d63b50e2248219f53302af7ec6fa2a42ed1f37e9cda2c76dbaca65036a7", "sha256:a7157c9ac6bddd2908c35ef099e4b643bc0e0ebb4d653deb54891d29258dd329", "sha256:8c18ee4dddd5c6a811930c0a7c7947bf16387da3b394725f6063f1366311187d", "sha256:56e392b7c738bd70e6f46cf48c8194d3d1dd4c5a59fae4b30c58bb6ef86e5233", "sha256:d858423f5ed444d494b15c4cc90a206e1b8c31354c781ac7584da0d21c09c1c3", "sha256:bb370120de6d26004358611441e07acda26840e41dfedc259d7f8cc613f96495", "sha256:7f76d406c6b998d6410198dcb82688dcdaec7d846aa87e263ccf52efdcfeba30", "sha256:a1413d06abfa942ca0553bf3bccaff5fdb36d55b84f2248e36228db871147dab", "sha256:20cac3123d791e4bf8482a580d98d6b5969ba348b9d5364df791ba3a666b660d", "sha256:719d914f564f35cce4dc103808f8297c807c9f0297ac183ed81ae8b5650e698e"]}, {"name": "pytz", "version": "2018.3", "hashes": ["sha256:410bcd1d6409026fbaa65d9ed33bf6dd8b1e94a499e32168acfc7b332e4095c0", "sha256:887ab5e5b32e4d0c86efddd3d055c1f363cbaa583beb8da5e22d2fa2f64d51ef", "sha256:5bd55c744e6feaa4d599a6cbd8228b4f8f9ba96de2c38d56f08e534b3c9edf0d", "sha256:ba18e6a243b3625513d85239b3e49055a2f0318466e0b8a92b8fb8ca7ccdf55f", "sha256:3a47ff71597f821cd84a162e71593004286e5be07a340fd462f0d33a760782b5", "sha256:07edfc3d4d2705a20a6e99d97f0c4b61c800b8232dc1c04d87e8554f130148dd", "sha256:ed6509d9af298b7995d69a440e2822288f2eca1681b8cce37673dbb10091e5fe", "sha256:f93ddcdd6342f94cea379c73cddb5724e0d6d0a1c91c9bdef364dc0368ba4fda", "sha256:61242a9abc626379574a166dc0e96a66cd7c3b27fc10868003fa210be4bff1c9"]}, {"name": "pandas-datareader", "version": "0.5.0", "hashes": ["sha256:a4461918f710b3c4b080a9e6b70efd5872d7580478fe331ee4c45ed3f7e35a56", "sha256:7523ca480c258cf4335869ba72e201807f2f3a8f4395efad5508a269efff18c9"]}, {"name": "requests-file", "version": "1.4.3", "hashes": ["sha256:75c175eed739270aec3c5279ffd74e6527dada275c5c0d76b5817e9c86bb7dea", "sha256:8f04aa6201bacda0567e7ac7f677f1499b0fc76b22140c54bc06edf1ba92e2fa"]}, {"name": "certifi", "version": "2018.1.18", "hashes": ["sha256:14131608ad2fd56836d33a71ee60fa1c82bc9d2c8d98b7bdbc631fe1b3cd1296", "sha256:edbc3f203427eef571f79a7692bb160a2b0f7ccaa31953e99bd17e307cf63f7d"]}, {"name": "idna", "version": "2.6", "hashes": ["sha256:2c6a5de3089009e3da7c5dde64a141dbc8551d5b7f6cf4ed7c2568d0cc520a8f", "sha256:8c7309c718f94b3a625cb648ace320157ad16ff131ae0af362c9f21b80ef6ec4"]}, {"name": "requests-ftp", "version": "0.3.1", "hashes": ["sha256:7504ceb5cba8a5c0135ed738596820a78c5f2be92d79b29f96ba99b183d8057a"]}, {"name": "python-dateutil", "version": "2.7.0", "hashes": ["sha256:07009062406cffd554a9b4135cd2ff167c9bf6b7aac61fe946c93e69fad1bbd8", "sha256:8f95bb7e6edbb2456a51a1fb58c8dca942024b4f5844cae62c90aa88afe6e300"]}, {"name": "chardet", "version": "3.0.4", "hashes": ["sha256:fc323ffcaeaed0e0a02bf4d117757b98aed530d9ed4531e3e15460124c106691", "sha256:84ab92ed1c4d4f16916e05906b6b75a6c0fb5db821cc65e70cbd64a3e2a5eaae"]}, {"name": "requests", "version": "2.18.4", "hashes": ["sha256:6a1b267aa90cac58ac3a765d067950e7dbbf75b1da07e895d1f594193a40a38b", "sha256:9c443e7324ba5b85070c4a818ade28bfabedf16ea10206da1132edaa6dda237e"]}, {"name": "urllib3", "version": "1.22", "hashes": ["sha256:06330f386d6e4b195fbfc736b297f58c5a892e4440e54d294d7004e3a9bbea1b", "sha256:cc44da8e1145637334317feebd728bd869a35285b93cbb4cca2577da7e62db4f"]}, {"name": "pandas", "version": "0.18.1", "hashes": ["sha256:2aeebd55027eb1fcb5020ec141696be47fff65fb86c276e46bae42f04b3bfeaf", "sha256:9b1a7834e10c5a2afacaae8ba10054dc2ee5ae81eeaecf44d9eaa4d726962817", "sha256:6f31b4510da92f8beec17fe9ecb3f386984a4b35e1d1dee062b3463f63e70bbc", "sha256:c39dbc38bc031f099bcfa408a93c801f0141ee49a7d4e0df09cdf9dcf01f27e6", "sha256:fccbc771a23d51b366182c136cd735cf1642744270fee964f5b1fe9103d66239", "sha256:563720b6302a4e2b513471c16bd7e89db2ae44d3f6b0745896b9c289f3c6b2fb", "sha256:a0af231d6bf20d3f94a4d694bb3cd26c1b330aa4ed124ea99eff49a583ed10ff", "sha256:de8661d3a71bac8b5100c2a85fdb1b55c9b41534aba7a9671d1130d43ab2de59", "sha256:c850d8c41b5417ba361967d3e2b6119c681b9f0bd5eb77f4c013c46dbf0ebe95", "sha256:aa50475fafbc689dead2e9a4e98b96fc43f1190f6661d1daf560f8c05ac26496", "sha256:80bf0d32432fe588a0e94ff6b216aa5c61ddba2348ca904bda240218f9cbe122", "sha256:42c933501341263194926d00c1039d314039f6fbe763e13d983918d273a0ad68", "sha256:6621db235422aa48d7513a7f332a7bfc6e9a54b0283bac145cccec7c4c0ccd7d", "sha256:931d25b391eb01c52239a41e2b1c29c8337a6789852ecc0d4ce39ce2491424e6", "sha256:d2e483692c7915916dffd1b83256ea9761b4224c8d45646ceddf48b977ee77b2", "sha256:b7a6ce196452bf9a020074b68c184b174c12a22c285603ceebb09c645cf001d1", "sha256:9984b284ab6d7672c720ea960f4d19b9dd0bea061c2ccd641b0c20d34ce03f7a"]}, {"name": "six", "version": "1.11.0", "hashes": ["sha256:832dc0e10feb1aa2c68dcc57dbb658f1c7e65b9b61af69048abc87a2db00a0eb", "sha256:70e8a77beed4562e7f14fe23a786b54f6296e34344c23bc42f07b15018ff98e9"]}]

@ehebert that patch is in place to enable us to grab results that won't work on your system, but will end up in the lockfile anyway (with markers). (e.g. manylinux wheels on a mac)

I can confirm that pipenv-resolver invocation fails for me as well. I know @ehebert and I are both on Ubuntu machines. Any chance the issue here is OS-dependent given that the issue looks to be related to code looking at dependencies that aren't installable on your system?

Quite possible. I'll experiment on linux.

I'm getting this same issue with django-pyodbc-azure==1.11.11.0 not liking django==1.11.11 , and looking for matches django<2.1,==1.11.11,>=2.0.3 which are the requirements of django-pyodbc-azure==2.x.x.x which isn't available to me:

Error:  An error occurred while installing django-pyodbc-azure==2.0!
  Could not find a version that satisfies the requirement django-pyodbc-azure==2.0 (from versions: 1.0.1, 1.0.2, 1.0.3, 1.0.5, 1.0.6, 1.0.7, 1.0.8, 1.0.9, 1.0.10, 1.0.11, 1.0.12, 1.0.13, 1.0.14, 1.1.0, 1.1.1, 1.1.2, 1.1.3, 1.1.4, 1.1.5, 1.1.6, 1.1.7, 1.1.8, 1.2.0, 1.2.1, 1.2.2, 1.2.3, 1.2.4, 1.2.5, 1.2.6, 1.2.7, 1.2.8, 1.2.9, 1.2.10, 1.2.11, 1.2.12, 1.8.0.0, 1.8.1.0, 1.8.3.0, 1.8.6.0, 1.8.7.0, 1.8.7.1,
1.8.7.2, 1.8.9.0, 1.8.10.0, 1.8.13.0, 1.8.14.0, 1.8.14.1, 1.8.17.0, 1.9.0.0, 1.9.0.1, 1.9.1.0, 1.9.2.0, 1.9.3.0, 1.9.6.0, 1.9.9.0, 1.9.9.1, 1.9.12.0, 1.10.0.0, 1.10.0.1, 1.10.4.0, 1.11.0.0, 1.11.9.0, 1.11.11.0)
No matching distribution found for django-pyodbc-azure==2.0

I'm using Ubuntu (well, bash on ubuntu on windows)

reproduced on ubuntu.

I take that back — cannot reproduce on ubuntu.

pipenv-resolver pandas-datareader==0.5.0 pandas==0.18.1 does indeed fail on ubuntu though.

@kennethreitz @ssanderson what version? 16.04?

master, obviously

@kennethreitz of ubuntu I mean, there have been a number of issues related to ubuntu 16.04 which is the LTS release

ah yes i'm using 17.10

pipenv-resolver pandas-datareader==0.5.0 pandas==0.18.1 no longer fail for me.

I take that back — needed to pass --clear.

11.6.5 released, which reverts ignore_compatibility.

thanks for the quick fix!

This appears to still be an issue for me with pipenv 11.7.1:

pt@PT-LAP:/mnt/c/dev/git/test$ pipenv --version
pipenv, version 11.7.1
pt@PT-LAP:/mnt/c/dev/git/test$ pipenv-resolver pandas-datareader==0.5.0 pandas==0.18.1 --clear
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 pandas==0.18.1,>=0.19.2

Have I missed a step?

This also appears to be an issue for with pipenv 11.7.1 and Ubuntu 16.04.

$ pipenv-resolver pandas-datareader==0.5.0 pandas==0.18.1 --clear
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 pandas==0.18.1,>=0.19.2
...

Re-applying the patch to patched/notpip/index.py from https://github.com/pypa/pipenv/issues/1693#issuecomment-372541000 allows for a successful resolution in my development setup.

$ python -m pipenv.help output
Pipenv version: '11.7.1'

Pipenv location: '/home/ehebert/.local/lib/python3.5/site-packages/pipenv'

Python location: '/usr/bin/python3'

Other Python installations in PATH:

  • 2.7: /usr/bin/python2.7
  • 2.7: /usr/bin/python2.7
  • 3.4: /usr/bin/python3.4m
  • 3.4: /usr/bin/python3.4
  • 3.5: /usr/bin/python3.5m
  • 3.5: /usr/bin/python3.5
  • 3.6: /usr/bin/python3.6m
  • 3.6: /usr/bin/python3.6

  • 2.7.12: /usr/bin/python

  • 2.7.12: /usr/bin/python2
  • 3.5.2: /usr/bin/python3

PEP 508 Information:

{'implementation_name': 'cpython',
 'implementation_version': '3.5.2',
 'os_name': 'posix',
 'platform_machine': 'x86_64',
 'platform_python_implementation': 'CPython',
 'platform_release': '4.4.0-1050-aws',
 'platform_system': 'Linux',
 'platform_version': '#59-Ubuntu SMP Tue Jan 30 19:57:10 UTC 2018',
 'python_full_version': '3.5.2',
 'python_version': '3.5',
 'sys_platform': 'linux'}

System environment variables:

  • EDITOR
  • SHELL
  • _system_version
  • SSH_TTY
  • VAULT_TOKEN
  • rvm_version
  • _system_arch
  • LAPACK
  • USER
  • VAULT_ADDR
  • TERMCAP
  • SSH_CLIENT
  • MAIL
  • PYTHONUNBUFFERED
  • PWD
  • PATH
  • LIBRARY_PATH
  • COLUMNS
  • HOME
  • XDG_RUNTIME_DIR
  • IRBRC
  • MANWIDTH
  • GEM_HOME
  • TERM
  • XDG_DATA_DIRS
  • RUBY_VERSION
  • LINES
  • _system_type
  • SSH_AUTH_SOCK
  • BUP_DIR
  • PS1
  • PIP_PYTHON_PATH
  • GCOV
  • _
  • ATLAS
  • _system_name
  • XDG_SESSION_ID
  • INSIDE_EMACS
  • BLAS
  • MY_RUBY_HOME
  • SSH_CONNECTION
  • CC
  • rvm_bin_path
  • SHLVL
  • DISPLAY
  • LD_LIBRARY_PATH
  • CXX
  • EMACS
  • rvm_path
  • LANG
  • GEM_PATH
  • rvm_prefix
  • GOPATH
  • LOGNAME
  • TERMINFO

Pipenv–specific environment variables:

Debug–specific environment variables:

  • PATH: /mnt/rvm/bin:/mnt/rvm/gems/ruby-2.4.2/bin:/mnt/rvm/gems/ruby-2.4.2@global/bin:/mnt/rvm/rubies/ruby-2.4.2/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/home/ehebert/bi n:/home/ehebert/.local/bin:/mnt/go/bin:/home/ehebert/kniferoll/bin:/home/ehebert/.local/bin:/mnt/rvm/bin
  • SHELL: /bin/bash
  • EDITOR: emacsclient -nw
  • LANG: en_US.UTF-8
  • PWD: /home/ehebert

The patch suggested has been made in 11.7.2.

Actually, perhaps I spoke too soon.

Yes, ignore_compatibility=False

Apologies, I might not be following correctly. I am not seeing the change to make find_requirements have a keyword arg of ignore_compatibility=False on master, https://github.com/pypa/pipenv/blob/f33e557e1e60eae223c3cf4ef04f782596cd562f/pipenv/patched/notpip/index.py#L491

ah, wrong spot! thank you.

Changing that locally:

Could not find a version that matches pandas==0.18.1,>=0.19.2
Tried: 0.1, 0.2b0, 0.2b1, 0.2, 0.3.0b0, 0.3.0b2, 0.3.0, 0.4.0, 0.4.1, 0.4.2, 0.4.3, 0.5.0, 0.6.0, 0.6.1, 0.7.0rc1, 0.7.0rc1, 0.7.0, 0.7.0, 0.7.1, 0.7.1, 0.7.2, 0.7.2, 0.7.3, 0.7.3, 0.8.0rc1, 0.8.0rc1, 0.8.0rc2, 0.8.0rc2, 0.8.0, 0.8.0, 0.8.1, 0.8.1, 0.9.0, 0.9.0, 0.9.1, 0.9.1, 0.10.0, 0.10.0, 0.10.1, 0.10.1, 0.11.0, 0.11.0, 0.12.0, 0.12.0, 0.13.0, 0.13.1, 0.13.1, 0.14.0, 0.14.0, 0.14.1, 0.14.1, 0.15.0, 0.15.0, 0.15.1, 0.15.1, 0.15.2, 0.15.2, 0.16.0, 0.16.0, 0.16.1, 0.16.1, 0.16.2, 0.16.2, 0.17.0, 0.17.0, 0.17.1, 0.17.1, 0.18.0, 0.18.1, 0.18.1, 0.19.0rc1, 0.19.0rc1, 0.19.0, 0.19.0, 0.19.1, 0.19.1, 0.19.2, 0.19.2, 0.20.0rc1, 0.20.0rc1, 0.20.0, 0.20.1, 0.20.1, 0.20.2, 0.20.2, 0.20.3, 0.20.3, 0.20.3, 0.21.0rc1, 0.21.0rc1, 0.21.0, 0.21.0, 0.21.1, 0.21.1, 0.22.0, 0.22.0

Pandas-datareader requires >0.19.2.

these are incompatible dependencies.

Pandas-datareader requires >0.19.2.

pandas-datareader==0.5.0 requires pandas>=0.17.0, https://github.com/pydata/pandas-datareader/blob/331e3895c51326e87e69325e1a14f1e350cb832e/setup.py#L28

I'm going to confirm by downloading the tarfile for pandas-datareader 0.5.0 from PyPI.

according to our resolver: pandas-datareader==0.5.0 requires lxml, pandas>=0.19.2, requests-file, requests-ftp, requests>=2.3.0, wrap

(from PyPI sdist)

So that's strange.

the wheel also {"requires": ["pandas (>=0.17.0)", "requests (>=2.3.0)", "requests-file", "requests-ftp"]

Same issue with $ pipenv-resolver django-pyodbc-azure==1.11.11.0 Django==1.11.11

The dependencies it resolves are from django-pyodbc-azure==2.0.3.0 and not django-pyodbc-azure==1.11.11.0

My checking of the sdist and wheel match your findings of pandas>=0.17.0 for pandas-datareader==0.5.0.

I believe that the requirements from pandas-datareader==0.6.0 are being used instead (or alongside) of pandas-datareader==0.5.0.

At one point while stepping through I believe I had found the pipenv dependency cache to contain both a spec of pandas>=0.19.2 and pandas>=0.17.0 associated with the ireq key for pandas-datareader==0.5.0, but have not been able to recreate that state.

this might be an error with our json api usage

I think there is something non-deterministic with the dependency resolution.

With that local edit of ignore_compatibility=False, invocations of $ pipenv-resolver pandas-datareader==0.5.0 pandas==0.18.1 --clear will randomly pass or fail.

hmmmm

run --verbose and inspect the results (appreciate your assistance)

No prob at all. (Thanks again for the project!)

From the beginning of a failed run:

Using pip: -i https://pypi.python.org/simple

                          ROUND 1                           
Current constraints:
  pandas==0.18.1
  pandas-datareader==0.5.0

Finding the best candidates:
  found candidate pandas==0.18.1 (constraint was ==0.18.1)
  found candidate pandas-datareader==0.5.0 (constraint was ==0.5.0)

Finding secondary dependencies:
  pandas==0.18.1 not in cache, need to check index
  pandas==0.18.1            requires numpy>=1.7.0, python-dateutil>=2, pytz>=2011k
  pandas-datareader==0.5.0 not in cache, need to check index
  pandas-datareader==0.5.0  requires lxml, pandas>=0.17.0, pandas>=0.19.2, requests-file, requests-file, requests-ftp, requests-ftp, requests>=2.3.0, requests>=2.3.0, wrapt

From the beginning of a successful run: (EDIT: This line was originally a typo of "end of failed run", I had made opposite the wrong word in the sentence.)

Using pip: -i https://pypi.python.org/simple

                          ROUND 1                           
Current constraints:
  pandas==0.18.1
  pandas-datareader==0.5.0

Finding the best candidates:
  found candidate pandas==0.18.1 (constraint was ==0.18.1)
  found candidate pandas-datareader==0.5.0 (constraint was ==0.5.0)

Finding secondary dependencies:
  pandas==0.18.1 not in cache, need to check index
  pandas==0.18.1            requires numpy>=1.7.0, python-dateutil>=2, pytz>=2011k
  pandas-datareader==0.5.0 not in cache, need to check index
  pandas-datareader==0.5.0  requires pandas>=0.17.0, requests-file, requests-ftp, requests>=2.3.0

The failed run has two entries pandas for pandas-datareader.

Attached are the full output of the invocations of pipenv-resolver pandas-datareader==0.5.0 pandas==0.18.1 --clear --verbose, which both used the patch in https://github.com/pypa/pipenv/issues/1693#issuecomment-372541000. Nothing, that I am aware of, was altered between the two invocations.

resolve-fail-1.txt
resolve-good-3.txt

Fail:

pandas-datareader==0.5.0 not in cache, need to check index
pandas-datareader==0.5.0 requires lxml, pandas>=0.17.0, pandas>=0.19.2, requests-file, requests-file, requests-ftp, requests-ftp, requests>=2.3.0, requests>=2.3.0, wrapt

Good:

pandas-datareader==0.5.0 requires pandas>=0.17.0, requests-file, requests-ftp, requests>=2.3.0

Discrepancy.

--
Kenneth Reitz

On Mar 14, 2018, at 8:45 AM, Eddie Hebert notifications@github.com wrote:

No prob at all. (Thanks again for the project!)

From the beginning of a failed run:

Using pip: -i https://pypi.python.org/simple

                      ROUND 1

Current constraints:
pandas==0.18.1
pandas-datareader==0.5.0

Finding the best candidates:
found candidate pandas==0.18.1 (constraint was ==0.18.1)
found candidate pandas-datareader==0.5.0 (constraint was ==0.5.0)

Finding secondary dependencies:
pandas==0.18.1 not in cache, need to check index
pandas==0.18.1 requires numpy>=1.7.0, python-dateutil>=2, pytz>=2011k
pandas-datareader==0.5.0 not in cache, need to check index
pandas-datareader==0.5.0 requires lxml, pandas>=0.17.0, pandas>=0.19.2, requests-file, requests-file, requests-ftp, requests-ftp, requests>=2.3.0, requests>=2.3.0, wrapt
From the end of a failed run:

Using pip: -i https://pypi.python.org/simple

                      ROUND 1

Current constraints:
pandas==0.18.1
pandas-datareader==0.5.0

Finding the best candidates:
found candidate pandas==0.18.1 (constraint was ==0.18.1)
found candidate pandas-datareader==0.5.0 (constraint was ==0.5.0)

Finding secondary dependencies:
pandas==0.18.1 not in cache, need to check index
pandas==0.18.1 requires numpy>=1.7.0, python-dateutil>=2, pytz>=2011k
pandas-datareader==0.5.0 not in cache, need to check index
pandas-datareader==0.5.0 requires pandas>=0.17.0, requests-file, requests-ftp, requests>=2.3.0
The failed run has two entries pandas for pandas-datareader.

Attached are the full output of the invocations of pipenv-resolver pandas-datareader==0.5.0 pandas==0.18.1 --clear --verbose, which both used the patch in #1693 (comment) https://github.com/pypa/pipenv/issues/1693#issuecomment-372541000. Nothing, that I am aware of, was altered between the two invocations.

resolve-fail-1.txt https://github.com/pypa/pipenv/files/1811070/resolve-fail-1.txt
resolve-good-3.txt https://github.com/pypa/pipenv/files/1811071/resolve-good-3.txt
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub https://github.com/pypa/pipenv/issues/1693#issuecomment-373008012, or mute the thread https://github.com/notifications/unsubscribe-auth/AAHUVaa45WKIDWv5S27H31dzF_bhQuTWks5teREDgaJpZM4SoA0v.

With pipenv version 11.8.0, pipenv-resolver pandas-datareader==0.5.0 pandas==0.18.1 --clear reliably results in the expected dependencies. (I tested ~20 consecutive invocations.) Thanks!

Still does not work on 11.8.0 for pair ftfy==4.4.3 and wordfreq==1.4.1.
Curiously enough pipenv-resolver ftfy==4.4.3 wordfreq==1.4.1 --clear works, but pipenv lock --clear with both on them in in Pipfile ends with
```
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 ftfy==4.4.3,>=5
Tried: 1.0, 2.0, 2.0.1, 2.0.2, 3.0, 3.0.1, 3.0.2, 3.0.3, 3.0.4, 3.0.5, 3.1.0, 3.1.1, 3.1.2, 3.1.3, 3.2.0, 3.3.0, 3.4.0, 4.0.0, 4.1.0, 4.1.1, 4.2.0, 4.3.1, 4.4, 4.4.1, 4.4.2, 4.4.3, 5.0, 5.0.1, 5.0.2, 5.1, 5.1.1, 5.2.0, 5.3.0

```
(wordfreq==1.4.1 should demand ftfy >=4 not 5)

@glowskir we are on 11.8.1 and this problem is resolved, I can't reproduce your error.

@glowskir I had a similar issue, pipenv lock --clear didn't work for me, then i did pipenv-resolver ... --clear which worked, and after that pipenv lock --clear worked again and has continued to work.

Wish I could be more helpful but I didn't get to the bottom of why it failed the first time- I'd suggest just being 100% sure the cache has been cleared.

help me please!
I can't solve this error.
ERROR: Could not find a version that satisfies the requirement b1 (from -r requi
rements.txt (line 59)) (from versions: none)
ERROR: No matching distribution found for b1 (from -r requirements.txt (line 59)
)

Was this page helpful?
0 / 5 - 0 ratings