Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Unexpected Error Resolving Satisfiable Dependencies with Pipenv 11 #1693

Closed
ssanderson opened this issue Mar 13, 2018 · 50 comments
Closed

Unexpected Error Resolving Satisfiable Dependencies with Pipenv 11 #1693

ssanderson opened this issue Mar 13, 2018 · 50 comments
Labels
Category: Dependency Resolution Issue relates to dependency resolution. Type: Bug 🐛 This issue is a bug. Type: Discussion This issue is open for discussion.

Comments

@ssanderson
Copy link

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
@ssanderson ssanderson changed the title Unexpected Error Resolving Satisfiable Dependendencies with Pipenv 11 Unexpected Error Resolving Satisfiable Dependencies with Pipenv 11 Mar 13, 2018
@ehebert
Copy link

ehebert commented Mar 13, 2018

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, 4e906e4#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 #1667, the issue which is mentioned in the patch that added the ignore_compatibility flag.

@techalchemy
Copy link
Member

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

@kennethreitz
Copy link
Contributor

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

@kennethreitz
Copy link
Contributor

Closing other issues for this one.

@kennethreitz
Copy link
Contributor

kennethreitz commented Mar 13, 2018

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

@kennethreitz
Copy link
Contributor

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"]}]

@kennethreitz
Copy link
Contributor

@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)

@kennethreitz kennethreitz added Type: Bug 🐛 This issue is a bug. Type: Discussion This issue is open for discussion. Category: Dependency Resolution Issue relates to dependency resolution. labels Mar 13, 2018
@ssanderson
Copy link
Author

ssanderson commented Mar 13, 2018

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?

@kennethreitz
Copy link
Contributor

Quite possible. I'll experiment on linux.

@ptink
Copy link

ptink commented Mar 13, 2018

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)

@kennethreitz
Copy link
Contributor

reproduced on ubuntu.

@kennethreitz
Copy link
Contributor

I take that back — cannot reproduce on ubuntu.

@kennethreitz
Copy link
Contributor

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

@techalchemy
Copy link
Member

@kennethreitz @ssanderson what version? 16.04?

@kennethreitz
Copy link
Contributor

master, obviously

@techalchemy
Copy link
Member

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

@kennethreitz
Copy link
Contributor

ah yes i'm using 17.10

@kennethreitz
Copy link
Contributor

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

@kennethreitz
Copy link
Contributor

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

@kennethreitz
Copy link
Contributor

kennethreitz commented Mar 13, 2018

11.6.5 released, which reverts ignore_compatibility.

gsemet added a commit to gsemet/pipenv that referenced this issue Mar 13, 2018
Fix pypa#1696
Fix pypa#1687
Reference pypa#1693

Signed-off-by: Gaetan Semet <gaetan@xeberon.net>
@kennethreitz
Copy link
Contributor

Actually, perhaps I spoke too soon.

@kennethreitz
Copy link
Contributor

Yes, ignore_compatibility=False

@ehebert
Copy link

ehebert commented Mar 14, 2018

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,

def find_requirement(self, req, upgrade, ignore_compatibility=True):

@kennethreitz
Copy link
Contributor

ah, wrong spot! thank you.

@kennethreitz
Copy link
Contributor

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

@kennethreitz
Copy link
Contributor

Pandas-datareader requires >0.19.2.

@kennethreitz
Copy link
Contributor

these are incompatible dependencies.

@ehebert
Copy link

ehebert commented Mar 14, 2018

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.

gsemet added a commit to gsemet/pipenv that referenced this issue Mar 14, 2018
Fix pypa#1696
Fix pypa#1687
Reference pypa#1693

Signed-off-by: Gaetan Semet <gaetan@xeberon.net>
@kennethreitz
Copy link
Contributor

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

@kennethreitz
Copy link
Contributor

@kennethreitz
Copy link
Contributor

(from PyPI sdist)

@kennethreitz
Copy link
Contributor

So that's strange.

@kennethreitz
Copy link
Contributor

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

@ptink
Copy link

ptink commented Mar 14, 2018

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

@ehebert
Copy link

ehebert commented Mar 14, 2018

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.

@kennethreitz
Copy link
Contributor

this might be an error with our json api usage

@ehebert
Copy link

ehebert commented Mar 14, 2018

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.

@kennethreitz
Copy link
Contributor

hmmmm

@kennethreitz
Copy link
Contributor

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

@ehebert
Copy link

ehebert commented Mar 14, 2018

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 #1693 (comment). Nothing, that I am aware of, was altered between the two invocations.

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

@kennethreitz
Copy link
Contributor

kennethreitz commented Mar 14, 2018 via email

@ehebert
Copy link

ehebert commented Mar 15, 2018

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!

@glowskir
Copy link

glowskir commented Mar 16, 2018

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)

@techalchemy
Copy link
Member

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

@ptink
Copy link

ptink commented Mar 19, 2018

@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.

gsemet added a commit to gsemet/pipenv that referenced this issue Mar 31, 2018
Fix pypa#1696
Fix pypa#1687
Reference pypa#1693

Signed-off-by: Gaetan Semet <gaetan@xeberon.net>
@ko-htet
Copy link

ko-htet commented Jul 10, 2020

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)
)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Category: Dependency Resolution Issue relates to dependency resolution. Type: Bug 🐛 This issue is a bug. Type: Discussion This issue is open for discussion.
Projects
None yet
Development

No branches or pull requests

7 participants