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"
I expected the Pipfile listed above to resolve to something like the set of dependencies that pipenv 10 finds successfully.
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
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
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.
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.0Finding 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.0Finding 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)
)
Most helpful comment
I was able to recreate this issue with `pipenv-resolver pandas-datareader==0.5.0 pandas==0.18.1", using:
I believe the source of the dependency conflict is in
pipenv.patched.notpip.index.PackageFinder.find_requirement
, with the value ofignore_compatiblity=True
. (Which was recently changed with this patch, https://github.com/pypa/pipenv/commit/4e906e4bc0df095ed3d61d4d283af02c76ec76d2#diff-6793f5b689d9956dc9b6c175038b718dR491)When
ignore_compatibility
isTrue
, and the spec forpandas-datareader
ispandas-datareader==0.5.0
, the spec is ignored, and all available candidates that are listed on PyPI are considered. Thebest_candidate
value in thefind_requirements
method is then set to0.6.0
, instead of0.5.0
, which adds a constraint ofpandas>=0.19.2
. The correct pandas constraint forpandas-datareader==0.5.0
ispandas>=0.17.0
.Here is a table of the expected constraints for
pandas-datareader
with links to the project'ssetup.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
toFalse
, allows a successful invocation of thepipenv-resolver pandas-datareader==0.5.0 pandas==0.18.1
. (Clearing the depcache before re-running the command is also required.)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.