pypa / pipenv

Python Development Workflow for Humans.
https://pipenv.pypa.io
MIT License
24.83k stars 1.87k forks source link

Pipenv.lock file resolves differently on the second pass (with iPython) #2888

Closed scott-vsi closed 5 years ago

scott-vsi commented 6 years ago
Issue description

Running pipenv lock twice produces a different Pipfile.lock

Expected result

I would expect it to produce the same lock file both times

Actual result and Steps to replicate
$ cat Pipfile
[[source]]
url = "https://pypi.org/simple"
verify_ssl = true
name = "pypi"

[dev-packages]

[packages]
ipython = "*"

[requires]
python_version = "2.7"
$ PIPENV_CACHE_DIR=./venv pipenv lock --verbose
output ``` Creating a virtualenv for this project... Pipfile: /Users/sgrichar/loki/test/Pipfile Using /usr/local/bin/python2.7 (2.7.14) to create virtualenv... Running virtualenv with interpreter /usr/local/bin/python2.7 New python executable in /Users/sgrichar/.local/share/virtualenvs/test-CrH5_LA2/bin/python2.7 Also creating executable in /Users/sgrichar/.local/share/virtualenvs/test-CrH5_LA2/bin/python Installing setuptools, pip, wheel...done. Setting project for test-CrH5_LA2 to /Users/sgrichar/loki/test Virtualenv location: /Users/sgrichar/.local/share/virtualenvs/test-CrH5_LA2 Locking [dev-packages] dependencies... Locking [packages] dependencies... using sources: [{u'url': u'https://pypi.org/simple', u'verify_ssl': True, u'name': u'pypi'}] Using pip: -i https://pypi.org/simple ROUND 1 Current constraints: ipython (from -r /var/folders/g9/pytwf10x5y58h92hx7x70qnh000105/T/pipenv-7iWEdP-requirements/pipenv-Ek2M6Q-constraints.txt (line 2)) Finding the best candidates: found candidate ipython==5.8.0 (constraint was ) Finding secondary dependencies: ipython==5.8.0 not in cache, need to check index ipython==5.8.0 requires appnope; sys_platform == "darwin", backports.shutil-get-terminal-size; python_version == "2.7", decorator, enum34; python_version == "2.7", ipython-genutils, ipython==5.8.0, pathlib2; python_version == "2.7" or python_version == "3.3", pexpect; sys_platform != "win32", pickleshare, prompt-toolkit<2.0.0,>=1.0.4, ptyprocess>=0.5, pygments, scandir; python_version < "3.5", setuptools>=18.5, simplegeneric>0.8, six>=1.9.0, traitlets>=4.2, wcwidth New dependencies found in this round: adding [u'appnope', '', '[]'] adding [u'backports.shutil-get-terminal-size', '', '[]'] adding [u'decorator', '', '[]'] adding [u'enum34', '', '[]'] adding [u'ipython', '==5.8.0', '[]'] adding [u'ipython-genutils', '', '[]'] adding [u'pathlib2', '', '[]'] adding [u'pexpect', '', '[]'] adding [u'pickleshare', '', '[]'] adding [u'prompt-toolkit', '<2.0.0,>=1.0.4', '[]'] adding [u'ptyprocess', '>=0.5', '[]'] adding [u'pygments', '', '[]'] adding [u'scandir', '', '[]'] adding [u'simplegeneric', '>0.8', '[]'] adding [u'six', '>=1.9.0', '[]'] adding [u'traitlets', '>=4.2', '[]'] adding [u'wcwidth', '', '[]'] Removed dependencies in this round: Unsafe dependencies in this round: ------------------------------------------------------------ Result of round 1: not stable ROUND 2 Current constraints: appnope backports.shutil-get-terminal-size decorator enum34 ipython==5.8.0 (from -r /var/folders/g9/pytwf10x5y58h92hx7x70qnh000105/T/pipenv-7iWEdP-requirements/pipenv-Ek2M6Q-constraints.txt (line 2)) ipython-genutils pathlib2 pexpect pickleshare prompt-toolkit<2.0.0,>=1.0.4 ptyprocess>=0.5 pygments scandir simplegeneric>0.8 six>=1.9.0 traitlets>=4.2 wcwidth Finding the best candidates: found candidate appnope==0.1.0 (constraint was ) found candidate backports.shutil-get-terminal-size==1.0.0 (constraint was ) found candidate decorator==4.3.0 (constraint was ) found candidate enum34==1.1.6 (constraint was ) found candidate ipython==5.8.0 (constraint was ==5.8.0) found candidate ipython-genutils==0.2.0 (constraint was ) found candidate pathlib2==2.3.2 (constraint was ) found candidate pexpect==4.6.0 (constraint was ) found candidate pickleshare==0.7.5 (constraint was ) found candidate prompt-toolkit==1.0.15 (constraint was >=1.0.4,<2.0.0) found candidate ptyprocess==0.6.0 (constraint was >=0.5) found candidate pygments==2.2.0 (constraint was ) found candidate scandir==1.9.0 (constraint was ) found candidate simplegeneric==0.8.1 (constraint was >0.8) found candidate six==1.11.0 (constraint was >=1.9.0) found candidate traitlets==4.3.2 (constraint was >=4.2) found candidate wcwidth==0.1.7 (constraint was ) Finding secondary dependencies: decorator==4.3.0 not in cache, need to check index decorator==4.3.0 requires decorator==4.3.0 six==1.11.0 not in cache, need to check index six==1.11.0 requires six==1.11.0 ipython==5.8.0 requires appnope; sys_platform == "darwin", backports.shutil-get-terminal-size; python_version == "2.7", decorator, enum34; python_version == "2.7", ipython-genutils, ipython==5.8.0, pathlib2; python_version == "2.7" or python_version == "3.3", pexpect; sys_platform != "win32", pickleshare, prompt-toolkit<2.0.0,>=1.0.4, ptyprocess>=0.5, pygments, scandir; python_version < "3.5", setuptools>=18.5, simplegeneric>0.8, six>=1.9.0, traitlets>=4.2, wcwidth pexpect==4.6.0 not in cache, need to check index pexpect==4.6.0 requires pexpect==4.6.0, ptyprocess>=0.5 prompt-toolkit==1.0.15 not in cache, need to check index prompt-toolkit==1.0.15 requires prompt-toolkit==1.0.15, six>=1.9.0, wcwidth scandir==1.9.0 not in cache, need to check index scandir==1.9.0 requires scandir==1.9.0 appnope==0.1.0 not in cache, need to check index appnope==0.1.0 requires appnope==0.1.0 traitlets==4.3.2 not in cache, need to check index traitlets==4.3.2 requires decorator, enum34; python_version == "2.7", ipython-genutils, six, traitlets==4.3.2 ipython-genutils==0.2.0 not in cache, need to check index ipython-genutils==0.2.0 requires ipython-genutils==0.2.0 pickleshare==0.7.5 not in cache, need to check index pickleshare==0.7.5 requires pathlib2; python_version in "2.6 2.7 3.2 3.3", pickleshare==0.7.5, scandir; python_version < "3.5", six backports.shutil-get-terminal-size==1.0.0 not in cache, need to check index backports.shutil-get-terminal-size==1.0.0 requires backports.shutil-get-terminal-size==1.0.0 ptyprocess==0.6.0 not in cache, need to check index ptyprocess==0.6.0 requires ptyprocess==0.6.0 simplegeneric==0.8.1 not in cache, need to check index simplegeneric==0.8.1 requires simplegeneric==0.8.1 wcwidth==0.1.7 not in cache, need to check index wcwidth==0.1.7 requires wcwidth==0.1.7 pygments==2.2.0 not in cache, need to check index pygments==2.2.0 requires pygments==2.2.0 enum34==1.1.6 not in cache, need to check index enum34==1.1.6 requires enum34==1.1.6 pathlib2==2.3.2 not in cache, need to check index pathlib2==2.3.2 requires pathlib2==2.3.2, scandir; python_version < "3.5", six New dependencies found in this round: adding [u'appnope', '==0.1.0', '[]'] adding [u'backports.shutil-get-terminal-size', '==1.0.0', '[]'] adding [u'decorator', '==4.3.0', '[]'] adding [u'enum34', '==1.1.6', '[]'] adding [u'ipython-genutils', '==0.2.0', '[]'] adding [u'pathlib2', '==2.3.2', '[]'] adding [u'pexpect', '==4.6.0', '[]'] adding [u'pickleshare', '==0.7.5', '[]'] adding [u'prompt-toolkit', '<2.0.0,==1.0.15,>=1.0.4', '[]'] adding [u'ptyprocess', '==0.6.0,>=0.5', '[]'] adding [u'pygments', '==2.2.0', '[]'] adding [u'scandir', '==1.9.0', '[]'] adding [u'simplegeneric', '==0.8.1,>0.8', '[]'] adding [u'six', '==1.11.0,>=1.9.0', '[]'] adding [u'traitlets', '==4.3.2,>=4.2', '[]'] adding [u'wcwidth', '==0.1.7', '[]'] Removed dependencies in this round: removing [u'appnope', '', '[]'] removing [u'backports.shutil-get-terminal-size', '', '[]'] removing [u'decorator', '', '[]'] removing [u'enum34', '', '[]'] removing [u'ipython-genutils', '', '[]'] removing [u'pathlib2', '', '[]'] removing [u'pexpect', '', '[]'] removing [u'pickleshare', '', '[]'] removing [u'prompt-toolkit', '<2.0.0,>=1.0.4', '[]'] removing [u'ptyprocess', '>=0.5', '[]'] removing [u'pygments', '', '[]'] removing [u'scandir', '', '[]'] removing [u'simplegeneric', '>0.8', '[]'] removing [u'six', '>=1.9.0', '[]'] removing [u'traitlets', '>=4.2', '[]'] removing [u'wcwidth', '', '[]'] Unsafe dependencies in this round: ------------------------------------------------------------ Result of round 2: not stable ROUND 3 Current constraints: appnope==0.1.0 backports.shutil-get-terminal-size==1.0.0 decorator==4.3.0 enum34==1.1.6 ipython==5.8.0 (from -r /var/folders/g9/pytwf10x5y58h92hx7x70qnh000105/T/pipenv-7iWEdP-requirements/pipenv-Ek2M6Q-constraints.txt (line 2)) ipython-genutils==0.2.0 pathlib2==2.3.2 pexpect==4.6.0 pickleshare==0.7.5 prompt-toolkit<2.0.0,==1.0.15,>=1.0.4 ptyprocess==0.6.0,>=0.5 pygments==2.2.0 scandir==1.9.0 simplegeneric==0.8.1,>0.8 six==1.11.0,>=1.9.0 traitlets==4.3.2,>=4.2 wcwidth==0.1.7 Finding the best candidates: found candidate appnope==0.1.0 (constraint was ==0.1.0) found candidate backports.shutil-get-terminal-size==1.0.0 (constraint was ==1.0.0) found candidate decorator==4.3.0 (constraint was ==4.3.0) found candidate enum34==1.1.6 (constraint was ==1.1.6) found candidate ipython==5.8.0 (constraint was ==5.8.0) found candidate ipython-genutils==0.2.0 (constraint was ==0.2.0) found candidate pathlib2==2.3.2 (constraint was ==2.3.2) found candidate pexpect==4.6.0 (constraint was ==4.6.0) found candidate pickleshare==0.7.5 (constraint was ==0.7.5) found candidate prompt-toolkit==1.0.15 (constraint was ==1.0.15,>=1.0.4,<2.0.0) found candidate ptyprocess==0.6.0 (constraint was >=0.5,==0.6.0) found candidate pygments==2.2.0 (constraint was ==2.2.0) found candidate scandir==1.9.0 (constraint was ==1.9.0) found candidate simplegeneric==0.8.1 (constraint was >0.8,==0.8.1) found candidate six==1.11.0 (constraint was ==1.11.0,>=1.9.0) found candidate traitlets==4.3.2 (constraint was >=4.2,==4.3.2) found candidate wcwidth==0.1.7 (constraint was ==0.1.7) Finding secondary dependencies: pathlib2==2.3.2 requires pathlib2==2.3.2, scandir; python_version < "3.5", six enum34==1.1.6 requires enum34==1.1.6 pickleshare==0.7.5 requires pathlib2; python_version in "2.6 2.7 3.2 3.3", pickleshare==0.7.5, scandir; python_version < "3.5", six ipython-genutils==0.2.0 requires ipython-genutils==0.2.0 backports.shutil-get-terminal-size==1.0.0 requires backports.shutil-get-terminal-size==1.0.0 pexpect==4.6.0 requires pexpect==4.6.0, ptyprocess>=0.5 simplegeneric==0.8.1 requires simplegeneric==0.8.1 prompt-toolkit==1.0.15 requires prompt-toolkit==1.0.15, six>=1.9.0, wcwidth ipython==5.8.0 requires appnope; sys_platform == "darwin", backports.shutil-get-terminal-size; python_version == "2.7", decorator, enum34; python_version == "2.7", ipython-genutils, ipython==5.8.0, pathlib2; python_version == "2.7" or python_version == "3.3", pexpect; sys_platform != "win32", pickleshare, prompt-toolkit<2.0.0,>=1.0.4, ptyprocess>=0.5, pygments, scandir; python_version < "3.5", setuptools>=18.5, simplegeneric>0.8, six>=1.9.0, traitlets>=4.2, wcwidth six==1.11.0 requires six==1.11.0 scandir==1.9.0 requires scandir==1.9.0 ptyprocess==0.6.0 requires ptyprocess==0.6.0 traitlets==4.3.2 requires decorator, enum34; python_version == "2.7", ipython-genutils, six, traitlets==4.3.2 pygments==2.2.0 requires pygments==2.2.0 wcwidth==0.1.7 requires wcwidth==0.1.7 appnope==0.1.0 requires appnope==0.1.0 decorator==4.3.0 requires decorator==4.3.0 ------------------------------------------------------------ Result of round 3: stable, done Updated Pipfile.lock (e4cc43)! ```
$ cat Pipfile.lock | grep -B4 pathlib
        "pathlib2": {
            "hashes": [
                "sha256:8eb170f8d0d61825e09a95b38be068299ddeda82f35e96c3301a8a5e7604cb83",
                "sha256:d1aa2a11ba7b8f7b21ab852b1fb5afb277e1bb99d5dfc663380b5015c0d80c5a"
            ],
            "markers": "python_version == '2.7' or python_version == '3.3'",
            "version": "==2.3.2"
        },

In this form, pathlib is not actually installed after running pipenv install (so ipython is broken). Now, after re-running the command, the lock file has changed:

$ PIPENV_CACHE_DIR=./venv pipenv lock --verbose
output ``` Locking [dev-packages] dependencies... Locking [packages] dependencies... using sources: [{u'url': u'https://pypi.org/simple', u'verify_ssl': True, u'name': u'pypi'}] Using pip: -i https://pypi.org/simple ROUND 1 Current constraints: ipython (from -r /var/folders/g9/pytwf10x5y58h92hx7x70qnh000105/T/pipenv-QdaxJp-requirements/pipenv-rV2j1p-constraints.txt (line 2)) Finding the best candidates: found candidate ipython==5.8.0 (constraint was ) Finding secondary dependencies: ipython==5.8.0 requires appnope; sys_platform == "darwin", backports.shutil-get-terminal-size; python_version == "2.7", decorator, enum34; python_version == "2.7", ipython-genutils, ipython==5.8.0, pathlib2; python_version == "2.7" or python_version == "3.3", pexpect; sys_platform != "win32", pickleshare, prompt-toolkit<2.0.0,>=1.0.4, ptyprocess>=0.5, pygments, scandir; python_version < "3.5", setuptools>=18.5, simplegeneric>0.8, six>=1.9.0, traitlets>=4.2, wcwidth New dependencies found in this round: adding [u'appnope', '', '[]'] adding [u'backports.shutil-get-terminal-size', '', '[]'] adding [u'decorator', '', '[]'] adding [u'enum34', '', '[]'] adding [u'ipython', '==5.8.0', '[]'] adding [u'ipython-genutils', '', '[]'] adding [u'pathlib2', '', '[]'] adding [u'pexpect', '', '[]'] adding [u'pickleshare', '', '[]'] adding [u'prompt-toolkit', '<2.0.0,>=1.0.4', '[]'] adding [u'ptyprocess', '>=0.5', '[]'] adding [u'pygments', '', '[]'] adding [u'scandir', '', '[]'] adding [u'simplegeneric', '>0.8', '[]'] adding [u'six', '>=1.9.0', '[]'] adding [u'traitlets', '>=4.2', '[]'] adding [u'wcwidth', '', '[]'] Removed dependencies in this round: Unsafe dependencies in this round: ------------------------------------------------------------ Result of round 1: not stable ROUND 2 Current constraints: appnope backports.shutil-get-terminal-size decorator enum34 ipython==5.8.0 (from -r /var/folders/g9/pytwf10x5y58h92hx7x70qnh000105/T/pipenv-QdaxJp-requirements/pipenv-rV2j1p-constraints.txt (line 2)) ipython-genutils pathlib2 pexpect pickleshare prompt-toolkit<2.0.0,>=1.0.4 ptyprocess>=0.5 pygments scandir simplegeneric>0.8 six>=1.9.0 traitlets>=4.2 wcwidth Finding the best candidates: found candidate appnope==0.1.0 (constraint was ) found candidate backports.shutil-get-terminal-size==1.0.0 (constraint was ) found candidate decorator==4.3.0 (constraint was ) found candidate enum34==1.1.6 (constraint was ) found candidate ipython==5.8.0 (constraint was ==5.8.0) found candidate ipython-genutils==0.2.0 (constraint was ) found candidate pathlib2==2.3.2 (constraint was ) found candidate pexpect==4.6.0 (constraint was ) found candidate pickleshare==0.7.5 (constraint was ) found candidate prompt-toolkit==1.0.15 (constraint was >=1.0.4,<2.0.0) found candidate ptyprocess==0.6.0 (constraint was >=0.5) found candidate pygments==2.2.0 (constraint was ) found candidate scandir==1.9.0 (constraint was ) found candidate simplegeneric==0.8.1 (constraint was >0.8) found candidate six==1.11.0 (constraint was >=1.9.0) found candidate traitlets==4.3.2 (constraint was >=4.2) found candidate wcwidth==0.1.7 (constraint was ) Finding secondary dependencies: pickleshare==0.7.5 requires pathlib2; python_version in "2.6 2.7 3.2 3.3", pickleshare==0.7.5, scandir; python_version < "3.5", six backports.shutil-get-terminal-size==1.0.0 requires backports.shutil-get-terminal-size==1.0.0 decorator==4.3.0 requires decorator==4.3.0 pygments==2.2.0 requires pygments==2.2.0 ptyprocess==0.6.0 requires ptyprocess==0.6.0 ipython-genutils==0.2.0 requires ipython-genutils==0.2.0 appnope==0.1.0 requires appnope==0.1.0 prompt-toolkit==1.0.15 requires prompt-toolkit==1.0.15, six>=1.9.0, wcwidth pexpect==4.6.0 requires pexpect==4.6.0, ptyprocess>=0.5 simplegeneric==0.8.1 requires simplegeneric==0.8.1 traitlets==4.3.2 requires decorator, enum34; python_version == "2.7", ipython-genutils, six, traitlets==4.3.2 enum34==1.1.6 requires enum34==1.1.6 wcwidth==0.1.7 requires wcwidth==0.1.7 six==1.11.0 requires six==1.11.0 ipython==5.8.0 requires appnope; sys_platform == "darwin", backports.shutil-get-terminal-size; python_version == "2.7", decorator, enum34; python_version == "2.7", ipython-genutils, ipython==5.8.0, pathlib2; python_version == "2.7" or python_version == "3.3", pexpect; sys_platform != "win32", pickleshare, prompt-toolkit<2.0.0,>=1.0.4, ptyprocess>=0.5, pygments, scandir; python_version < "3.5", setuptools>=18.5, simplegeneric>0.8, six>=1.9.0, traitlets>=4.2, wcwidth scandir==1.9.0 requires scandir==1.9.0 pathlib2==2.3.2 requires pathlib2==2.3.2, scandir; python_version < "3.5", six New dependencies found in this round: adding [u'appnope', '==0.1.0', '[]'] adding [u'backports.shutil-get-terminal-size', '==1.0.0', '[]'] adding [u'decorator', '==4.3.0', '[]'] adding [u'enum34', '==1.1.6', '[]'] adding [u'ipython-genutils', '==0.2.0', '[]'] adding [u'pathlib2', '==2.3.2', '[]'] adding [u'pexpect', '==4.6.0', '[]'] adding [u'pickleshare', '==0.7.5', '[]'] adding [u'prompt-toolkit', '<2.0.0,==1.0.15,>=1.0.4', '[]'] adding [u'ptyprocess', '==0.6.0,>=0.5', '[]'] adding [u'pygments', '==2.2.0', '[]'] adding [u'scandir', '==1.9.0', '[]'] adding [u'simplegeneric', '==0.8.1,>0.8', '[]'] adding [u'six', '==1.11.0,>=1.9.0', '[]'] adding [u'traitlets', '==4.3.2,>=4.2', '[]'] adding [u'wcwidth', '==0.1.7', '[]'] Removed dependencies in this round: removing [u'appnope', '', '[]'] removing [u'backports.shutil-get-terminal-size', '', '[]'] removing [u'decorator', '', '[]'] removing [u'enum34', '', '[]'] removing [u'ipython-genutils', '', '[]'] removing [u'pathlib2', '', '[]'] removing [u'pexpect', '', '[]'] removing [u'pickleshare', '', '[]'] removing [u'prompt-toolkit', '<2.0.0,>=1.0.4', '[]'] removing [u'ptyprocess', '>=0.5', '[]'] removing [u'pygments', '', '[]'] removing [u'scandir', '', '[]'] removing [u'simplegeneric', '>0.8', '[]'] removing [u'six', '>=1.9.0', '[]'] removing [u'traitlets', '>=4.2', '[]'] removing [u'wcwidth', '', '[]'] Unsafe dependencies in this round: ------------------------------------------------------------ Result of round 2: not stable ROUND 3 Current constraints: appnope==0.1.0 backports.shutil-get-terminal-size==1.0.0 decorator==4.3.0 enum34==1.1.6 ipython==5.8.0 (from -r /var/folders/g9/pytwf10x5y58h92hx7x70qnh000105/T/pipenv-QdaxJp-requirements/pipenv-rV2j1p-constraints.txt (line 2)) ipython-genutils==0.2.0 pathlib2==2.3.2 pexpect==4.6.0 pickleshare==0.7.5 prompt-toolkit<2.0.0,==1.0.15,>=1.0.4 ptyprocess==0.6.0,>=0.5 pygments==2.2.0 scandir==1.9.0 simplegeneric==0.8.1,>0.8 six==1.11.0,>=1.9.0 traitlets==4.3.2,>=4.2 wcwidth==0.1.7 Finding the best candidates: found candidate appnope==0.1.0 (constraint was ==0.1.0) found candidate backports.shutil-get-terminal-size==1.0.0 (constraint was ==1.0.0) found candidate decorator==4.3.0 (constraint was ==4.3.0) found candidate enum34==1.1.6 (constraint was ==1.1.6) found candidate ipython==5.8.0 (constraint was ==5.8.0) found candidate ipython-genutils==0.2.0 (constraint was ==0.2.0) found candidate pathlib2==2.3.2 (constraint was ==2.3.2) found candidate pexpect==4.6.0 (constraint was ==4.6.0) found candidate pickleshare==0.7.5 (constraint was ==0.7.5) found candidate prompt-toolkit==1.0.15 (constraint was ==1.0.15,>=1.0.4,<2.0.0) found candidate ptyprocess==0.6.0 (constraint was >=0.5,==0.6.0) found candidate pygments==2.2.0 (constraint was ==2.2.0) found candidate scandir==1.9.0 (constraint was ==1.9.0) found candidate simplegeneric==0.8.1 (constraint was >0.8,==0.8.1) found candidate six==1.11.0 (constraint was ==1.11.0,>=1.9.0) found candidate traitlets==4.3.2 (constraint was >=4.2,==4.3.2) found candidate wcwidth==0.1.7 (constraint was ==0.1.7) Finding secondary dependencies: pygments==2.2.0 requires pygments==2.2.0 wcwidth==0.1.7 requires wcwidth==0.1.7 pathlib2==2.3.2 requires pathlib2==2.3.2, scandir; python_version < "3.5", six prompt-toolkit==1.0.15 requires prompt-toolkit==1.0.15, six>=1.9.0, wcwidth backports.shutil-get-terminal-size==1.0.0 requires backports.shutil-get-terminal-size==1.0.0 ptyprocess==0.6.0 requires ptyprocess==0.6.0 simplegeneric==0.8.1 requires simplegeneric==0.8.1 appnope==0.1.0 requires appnope==0.1.0 enum34==1.1.6 requires enum34==1.1.6 decorator==4.3.0 requires decorator==4.3.0 six==1.11.0 requires six==1.11.0 ipython==5.8.0 requires appnope; sys_platform == "darwin", backports.shutil-get-terminal-size; python_version == "2.7", decorator, enum34; python_version == "2.7", ipython-genutils, ipython==5.8.0, pathlib2; python_version == "2.7" or python_version == "3.3", pexpect; sys_platform != "win32", pickleshare, prompt-toolkit<2.0.0,>=1.0.4, ptyprocess>=0.5, pygments, scandir; python_version < "3.5", setuptools>=18.5, simplegeneric>0.8, six>=1.9.0, traitlets>=4.2, wcwidth pexpect==4.6.0 requires pexpect==4.6.0, ptyprocess>=0.5 traitlets==4.3.2 requires decorator, enum34; python_version == "2.7", ipython-genutils, six, traitlets==4.3.2 scandir==1.9.0 requires scandir==1.9.0 ipython-genutils==0.2.0 requires ipython-genutils==0.2.0 pickleshare==0.7.5 requires pathlib2; python_version in "2.6 2.7 3.2 3.3", pickleshare==0.7.5, scandir; python_version < "3.5", six ------------------------------------------------------------ Result of round 3: stable, done Updated Pipfile.lock (e4cc43)! ```
$ cat Pipfile.lock | grep -B4 pathlib
        "pathlib2": {
            "hashes": [
                "sha256:8eb170f8d0d61825e09a95b38be068299ddeda82f35e96c3301a8a5e7604cb83",
                "sha256:d1aa2a11ba7b8f7b21ab852b1fb5afb277e1bb99d5dfc663380b5015c0d80c5a"
            ],
            "markers": "python_version in '2.6 2.7 3.2 3.3'",
            "version": "==2.3.2"
        },

Now, after running pipenv install, ipython works.


$ pipenv --support Pipenv version: `'2018.7.1'` Pipenv location: `'/usr/local/lib/python2.7/site-packages/pipenv'` Python location: `'/usr/local/opt/python@2/bin/python2.7'` Other Python installations in `PATH`: - `2.7`: `/usr/local/bin/python2.7` - `2.7`: `/usr/local/bin/python2.7` - `2.7`: `/usr/bin/python2.7` - `2.7`: `/usr/local/bin/python2.7` - `3.6`: `/usr/local/bin/python3.6m` - `3.6`: `/usr/local/bin/python3.6` - `3.6`: `/usr/local/bin/python3.6` - `2.7.14`: `/usr/local/bin/python` - `2.7.10`: `/usr/bin/python` - `2.7.14`: `/usr/local/bin/python` - `2.7.14`: `/usr/local/bin/python2` - `2.7.14`: `/usr/local/bin/python2` - `3.6.5`: `/usr/local/bin/python3` - `3.6.5`: `/usr/local/bin/python3` PEP 508 Information: ``` {'implementation_name': 'cpython', 'implementation_version': '0', 'os_name': 'posix', 'platform_machine': 'x86_64', 'platform_python_implementation': 'CPython', 'platform_release': '17.7.0', 'platform_system': 'Darwin', 'platform_version': 'Darwin Kernel Version 17.7.0: Thu Jun 21 22:53:14 PDT 2018; root:xnu-4570.71.2~1/RELEASE_X86_64', 'python_full_version': '2.7.14', 'python_version': '2.7', 'sys_platform': 'darwin'} ``` System environment variables: - `_` - `TERM_PROGRAM_VERSION` - `LOGNAME` - `USER` - `PATH` - `HOME` - `DISPLAY` - `TERM_PROGRAM` - `LANG` - `__CF_USER_TEXT_ENCODING` - `TERM` - `Apple_PubSub_Socket_Render` - `SHLVL` - `SECURITYSESSIONID` - `XPC_FLAGS` - `EDITOR` - `FIGNORE` - `TERM_SESSION_ID` - `XPC_SERVICE_NAME` - `SSH_AUTH_SOCK` - `VISUAL` - `SHELL` - `PYTHONDONTWRITEBYTECODE` - `PIP_PYTHON_PATH` - `TMPDIR` - `LSCOLORS` - `PYTHONSTARTUP` - `OLDPWD` - `CLICOLOR` - `HISTCONTROL` - `PWD` Pipenv–specific environment variables: Debug–specific environment variables: - `PATH`: `/usr/local/bin:/usr/local/sbin:/Users/user/.bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/texbin:/opt/X11/bin` - `SHELL`: `/bin/bash` - `EDITOR`: `nvim` - `LANG`: `en_US.UTF-8` - `PWD`: `/Users/user/loki/test` --------------------------- Contents of `Pipfile` ('/Users/user/loki/test/Pipfile'): ```toml [[source]] url = "https://pypi.org/simple" verify_ssl = true name = "pypi" [dev-packages] [packages] ipython = "*" [requires] python_version = "2.7" ``` Contents of `Pipfile.lock` ('/Users/user/loki/test/Pipfile.lock'): ```json { "_meta": { "hash": { "sha256": "bd21cf36543e0331955e6f1443bc021c6e4cc23e157f5b6a1a29bdf9147152c9" }, "pipfile-spec": 6, "requires": { "python_version": "2" }, "sources": [ { "name": "pypi", "url": "https://pypi.org/simple", "verify_ssl": true } ] }, "default": { "appnope": { "hashes": [ "sha256:5b26757dc6f79a3b7dc9fab95359328d5747fcb2409d331ea66d0272b90ab2a0", "sha256:8b995ffe925347a2138d7ac0fe77155e4311a0ea6d6da4f5128fe4b3cbe5ed71" ], "markers": "sys_platform == 'darwin'", "version": "==0.1.0" }, "backports.shutil-get-terminal-size": { "hashes": [ "sha256:0975ba55054c15e346944b38956a4c9cbee9009391e41b86c68990effb8c1f64", "sha256:713e7a8228ae80341c70586d1cc0a8caa5207346927e23d09dcbcaf18eadec80" ], "markers": "python_version == '2.7'", "version": "==1.0.0" }, "decorator": { "hashes": [ "sha256:2c51dff8ef3c447388fe5e4453d24a2bf128d3a4c32af3fabef1f01c6851ab82", "sha256:c39efa13fbdeb4506c476c9b3babf6a718da943dab7811c206005a4a956c080c" ], "version": "==4.3.0" }, "enum34": { "hashes": [ "sha256:2d81cbbe0e73112bdfe6ef8576f2238f2ba27dd0d55752a776c41d38b7da2850", "sha256:644837f692e5f550741432dd3f223bbb9852018674981b1664e5dc339387588a", "sha256:6bd0f6ad48ec2aa117d3d141940d484deccda84d4fcd884f5c3d93c23ecd8c79", "sha256:8ad8c4783bf61ded74527bffb48ed9b54166685e4230386a9ed9b1279e2df5b1" ], "markers": "python_version == '2.7'", "version": "==1.1.6" }, "ipython": { "hashes": [ "sha256:0371b7e4bd74954a35086eac949beeac5b1c9f5ce231e2e77df2286a293765e3", "sha256:37101b8cbe072fe17bff100bc03d096404e4a9a0357097aeb5b61677c042cab1", "sha256:4bac649857611baaaf76bc82c173aa542f7486446c335fe1a6c05d0d491c8906" ], "index": "pypi", "version": "==5.8.0" }, "ipython-genutils": { "hashes": [ "sha256:72dd37233799e619666c9f639a9da83c34013a73e8bbc79a7a6348d93c61fab8", "sha256:eb2e116e75ecef9d4d228fdc66af54269afa26ab4463042e33785b887c628ba8" ], "version": "==0.2.0" }, "pathlib2": { "hashes": [ "sha256:8eb170f8d0d61825e09a95b38be068299ddeda82f35e96c3301a8a5e7604cb83", "sha256:d1aa2a11ba7b8f7b21ab852b1fb5afb277e1bb99d5dfc663380b5015c0d80c5a" ], "markers": "python_version in '2.6 2.7 3.2 3.3'", "version": "==2.3.2" }, "pexpect": { "hashes": [ "sha256:2a8e88259839571d1251d278476f3eec5db26deb73a70be5ed5dc5435e418aba", "sha256:3fbd41d4caf27fa4a377bfd16fef87271099463e6fa73e92a52f92dfee5d425b" ], "markers": "sys_platform != 'win32'", "version": "==4.6.0" }, "pickleshare": { "hashes": [ "sha256:87683d47965c1da65cdacaf31c8441d12b8044cdec9aca500cd78fc2c683afca", "sha256:9649af414d74d4df115d5d718f82acb59c9d418196b7b4290ed47a12ce62df56" ], "version": "==0.7.5" }, "prompt-toolkit": { "hashes": [ "sha256:1df952620eccb399c53ebb359cc7d9a8d3a9538cb34c5a1344bdbeb29fbcc381", "sha256:3f473ae040ddaa52b52f97f6b4a493cfa9f5920c255a12dc56a7d34397a398a4", "sha256:858588f1983ca497f1cf4ffde01d978a3ea02b01c8a26a8bbc5cd2e66d816917" ], "version": "==1.0.15" }, "ptyprocess": { "hashes": [ "sha256:923f299cc5ad920c68f2bc0bc98b75b9f838b93b599941a6b63ddbc2476394c0", "sha256:d7cc528d76e76342423ca640335bd3633420dc1366f258cb31d05e865ef5ca1f" ], "version": "==0.6.0" }, "pygments": { "hashes": [ "sha256:78f3f434bcc5d6ee09020f92ba487f95ba50f1e3ef83ae96b9d5ffa1bab25c5d", "sha256:dbae1046def0efb574852fab9e90209b23f556367b5a320c0bcb871c77c3e8cc" ], "version": "==2.2.0" }, "scandir": { "hashes": [ "sha256:04b8adb105f2ed313a7c2ef0f1cf7aff4871aa7a1883fa4d8c44b5551ab052d6", "sha256:1444134990356c81d12f30e4b311379acfbbcd03e0bab591de2696a3b126d58e", "sha256:1b5c314e39f596875e5a95dd81af03730b338c277c54a454226978d5ba95dbb6", "sha256:346619f72eb0ddc4cf355ceffd225fa52506c92a2ff05318cfabd02a144e7c4e", "sha256:44975e209c4827fc18a3486f257154d34ec6eaec0f90fef0cca1caa482db7064", "sha256:61859fd7e40b8c71e609c202db5b0c1dbec0d5c7f1449dec2245575bdc866792", "sha256:a5e232a0bf188362fa00123cc0bb842d363a292de7126126df5527b6a369586a", "sha256:c14701409f311e7a9b7ec8e337f0815baf7ac95776cc78b419a1e6d49889a383", "sha256:c7708f29d843fc2764310732e41f0ce27feadde453261859ec0fca7865dfc41b", "sha256:c9009c527929f6e25604aec39b0a43c3f831d2947d89d6caaab22f057b7055c8", "sha256:f5c71e29b4e2af7ccdc03a020c626ede51da471173b4a6ad1e904f2b2e04b4bd" ], "markers": "python_version < '3.5'", "version": "==1.9.0" }, "simplegeneric": { "hashes": [ "sha256:dc972e06094b9af5b855b3df4a646395e43d1c9d0d39ed345b7393560d0b9173" ], "version": "==0.8.1" }, "six": { "hashes": [ "sha256:70e8a77beed4562e7f14fe23a786b54f6296e34344c23bc42f07b15018ff98e9", "sha256:832dc0e10feb1aa2c68dcc57dbb658f1c7e65b9b61af69048abc87a2db00a0eb" ], "version": "==1.11.0" }, "traitlets": { "hashes": [ "sha256:9c4bd2d267b7153df9152698efb1050a5d84982d3384a37b2c1f7723ba3e7835", "sha256:c6cb5e6f57c5a9bdaa40fa71ce7b4af30298fbab9ece9815b5d995ab6217c7d9" ], "version": "==4.3.2" }, "wcwidth": { "hashes": [ "sha256:3df37372226d6e63e1b1e1eda15c594bca98a22d33a23832a90998faa96bc65e", "sha256:f4ebe71925af7b40a864553f761ed559b43544f8f71746c2d756c7fe788ade7c" ], "version": "==0.1.7" } }, "develop": {} } ```
Jamim commented 6 years ago

This issue is a duplicate of #2662.

techalchemy commented 5 years ago

Markers are sometimes parsed nondeterministically, in most cases (all cases that I've seen) it is not meaningful but it does create a lot of clutter in version control. We will fix this when we get better at set math.

Sorry for the annoyance

scott-vsi commented 5 years ago

FYI this is a case where it matters. iPython will not install on the first pass. You must run pipenv install twice. The first time it errors with the output listed above.

techalchemy commented 5 years ago

@scott-vsi I believe that is an artifact of a bug in the resolver implementation which causes it to be nondeterministic -- that will be fixed in the coming release (next few hrs)

scott-vsi commented 5 years ago

Great. Thanks!