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

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

Closed
scott-vsi opened this issue Sep 26, 2018 · 5 comments
Closed

Comments

@scott-vsi
Copy link

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

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 <any>)
  found candidate backports.shutil-get-terminal-size==1.0.0 (constraint was <any>)
  found candidate decorator==4.3.0 (constraint was <any>)
  found candidate enum34==1.1.6 (constraint was <any>)
  found candidate ipython==5.8.0 (constraint was ==5.8.0)
  found candidate ipython-genutils==0.2.0 (constraint was <any>)
  found candidate pathlib2==2.3.2 (constraint was <any>)
  found candidate pexpect==4.6.0 (constraint was <any>)
  found candidate pickleshare==0.7.5 (constraint was <any>)
  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 <any>)
  found candidate scandir==1.9.0 (constraint was <any>)
  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 <any>)

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

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 <any>)
  found candidate backports.shutil-get-terminal-size==1.0.0 (constraint was <any>)
  found candidate decorator==4.3.0 (constraint was <any>)
  found candidate enum34==1.1.6 (constraint was <any>)
  found candidate ipython==5.8.0 (constraint was ==5.8.0)
  found candidate ipython-genutils==0.2.0 (constraint was <any>)
  found candidate pathlib2==2.3.2 (constraint was <any>)
  found candidate pexpect==4.6.0 (constraint was <any>)
  found candidate pickleshare==0.7.5 (constraint was <any>)
  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 <any>)
  found candidate scandir==1.9.0 (constraint was <any>)
  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 <any>)

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

[[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'):

{
    "_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
Copy link
Contributor

Jamim commented Sep 26, 2018

This issue is a duplicate of #2662.

@techalchemy
Copy link
Member

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
Copy link
Author

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
Copy link
Member

@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
Copy link
Author

Great. Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants