I run pipenv install jupyterlab
It correctly installs v0.34.11
Gives this error:
Could not find a version that matches prompt-toolkit<2.0.0,<2.1.0,==1.0.15,>=1.0.15,>=2.0.0
While the tree pipenv graph shows prompt-toolkit only in two lines:
jupyterlab==0.34.11
- jupyterlab-launcher [required: >=0.13.1,<0.14.0, installed: 0.13.1]
...
- notebook [required: >=4.2.0, installed: 5.7.0]
...
- prompt-toolkit [required: >=2.0.0,<2.1.0, installed: 2.0.4]
...
- notebook [required: >=4.3.1, installed: 5.7.0]
...
- prompt-toolkit [required: >=2.0.0,<2.1.0, installed: 2.0.4]
...
Install without the weird version error
see above.
create a new directory with python_version = "3.6" and run pipenv install jupyterlab
$ pipenv --support
Pipenv version: '2018.7.1'
Pipenv location: '/usr/local/Cellar/pipenv/2018.7.1/libexec/lib/python3.7/site-packages/pipenv'
Python location: '/usr/local/Cellar/pipenv/2018.7.1/libexec/bin/python3.7'
Other Python installations in PATH:
2.7: /usr/local/bin/python2.72.7: /usr/local/bin/python2.72.7: /usr/bin/python2.73.6: /Users/byakubchik/.local/share/virtualenvs/ml-with-python-and-keras-u1_RmhqT/bin/python3.6m3.6: /Users/byakubchik/.local/share/virtualenvs/ml-with-python-and-keras-u1_RmhqT/bin/python3.63.6: /Library/Frameworks/Python.framework/Versions/3.6/bin/python3.63.6: /usr/local/bin/python3.63.7: /Library/Frameworks/Python.framework/Versions/3.7/bin/python3.7m3.7: /Library/Frameworks/Python.framework/Versions/3.7/bin/python3.73.7: /usr/local/bin/python3.7
3.6.4: /Users/byakubchik/.local/share/virtualenvs/ml-with-python-and-keras-u1_RmhqT/bin/python
2.7.15: /usr/local/bin/python2.7.10: /usr/bin/python2.7.15: /usr/local/bin/python23.6.4: /Users/byakubchik/.local/share/virtualenvs/ml-with-python-and-keras-u1_RmhqT/bin/python33.7.0: /Library/Frameworks/Python.framework/Versions/3.7/bin/python33.6.4: /Library/Frameworks/Python.framework/Versions/3.6/bin/python33.7.0: /usr/local/bin/python3PEP 508 Information:
{'implementation_name': 'cpython',
'implementation_version': '3.7.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': '3.7.0',
'python_version': '3.7',
'sys_platform': 'darwin'}
System environment variables:
PATHTERM_PROGRAMNVM_CD_FLAGSPIP_PYTHON_PATHSHELLTERMTMPDIRApple_PubSub_Socket_RenderTERM_PROGRAM_VERSIONZSHUSERNVM_DIRSSH_AUTH_SOCK__CF_USER_TEXT_ENCODINGVIRTUAL_ENVPAGERLSCOLORSPIPENV_ACTIVE_PWDLANGXPC_FLAGSPYTHONDONTWRITEBYTECODEXPC_SERVICE_NAMEHOMESHLVLLOGNAMELESSLC_CTYPENVM_BINDISPLAYCOLORTERMPipenv鈥搒pecific environment variables:
PIPENV_ACTIVE: 1Debug鈥搒pecific environment variables:
PATH: /usr/local/Cellar/pipenv/2018.7.1/libexec/tools:/Users/byakubchik/.local/share/virtualenvs/ml-with-python-and-keras-u1_RmhqT/bin:/usr/local/opt/opencv3/bin:/usr/local/Cellar/pipenv/2018.7.1/libexec/tools:/usr/local/opt/opencv3/bin:/Users/byakubchik/.nvm/versions/node/v8.11.2/bin:/Library/Frameworks/Python.framework/Versions/3.7/bin:/Library/Frameworks/Python.framework/Versions/3.6/bin:/Library/Frameworks/Python.framework/Versions/2.7/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:~/.composer/vendor/bin:/Library/TeX/texbin:/usr/local/go/bin:/opt/X11/binSHELL: /bin/zshLANG: en_US.UTF-8PWD: /Users/byakubchik/Desktop/myML/ml-with-python-and-kerasVIRTUAL_ENV: /Users/byakubchik/.local/share/virtualenvs/ml-with-python-and-keras-u1_RmhqTContents of Pipfile ('/Users/byakubchik/Desktop/myML/ml-with-python-and-keras/Pipfile'):
[[source]]
url = "https://pypi.org/simple"
verify_ssl = true
name = "pypi"
[packages]
jupyterlab = "*"
[dev-packages]
black = "*"
pylint = "*"
[requires]
python_version = "3.6"
[pipenv]
allow_prereleases = true
I've also seen this on the latest pipenv master, unfortunately.
I have not undertaken the effort to find a minimal reproducing example so I have several occurences of prompt-toolkit.
位 pipenv graph | grep prompt
- prompt-toolkit [required: >=1.0.15,<2.0.0, installed: 1.0.15]
- prompt-toolkit [required: >=1.0.15,<2.0.0, installed: 1.0.15]
- prompt-toolkit [required: >=1.0.15,<2.0.0, installed: 1.0.15]
- prompt-toolkit [required: >=1.0.15,<2.0.0, installed: 1.0.15]
- prompt-toolkit [required: >=1.0.15,<2.0.0, installed: 1.0.15]
- prompt-toolkit [required: >=1.0.0,<2.0.0, installed: 1.0.15]
- prompt-toolkit [required: >=1.0.15,<2.0.0, installed: 1.0.15]
This is after doing pip install --dev --skip-lock
@whyboris you can use pip install --skip-lock as a temporary solution.
I'm also experiencing the same issue. Skipping lock is a "solution" but not a good one if you want to be serious on how you manage your environment.
Same issue as well. Is it possible the issue is related to the recent release of ipython v7.0.0, which bumps the requirement to prompt_toolkit>=2.0.0,<2.1.0 from prompt_toolkit>=1.0.15,<2.0.0 in ipython v6.5.0? Unfortunately, I still wasn't able to resolve this by adding ipython = "==6.5.0" in my Pipfile.
Same issue for me. I guess it's impossible to be both <2.0.0 and >=2.0.0 at the same time, eh?
To clarify @odoublewen's comment, somewhere in the Jupyter ecosystem, there are conflicting requirements, where some packages require prompt_toolkit>=2.0.0 and some require prompt_toolkit<2.0.0.
The confusing thing for me is that pip install jupyter (or jupyterlab) works fine within pipenv's virtual environment.
Another, possibly cleaner workaround, is to remove jupyter / jupyterlab from your Pipfile and install manually with
pipenv shell
pip install jupyter # or jupyterlab
I have jupyter as dev dependency, so it's less important to me that pipenv manage it than most of my other packages. But I would love to see a solution to this.
Same issue as well.
As a workaround you can install ipython==6.5.0 first and after that jupyter:
pipenv install ipython==6.5.0
pipenv install jupyter
Incidentally, I get the same error trying to run pipenv install --dev ipdb. I worked around it by running pipenv install ipython==6.5.0 first as described above by wpsamurai.
Installing ipython==6.5.0 first didn't work for me.
But by using --skip-lock worked fine.
I'm using python 3.7.0 and pip 18.0
I can't even install jupyter now without having to use --skip-lock
Pipfile:
[[source]]
url = "https://pypi.org/simple"
verify_ssl = true
name = "pypi"
[packages]
numpy = "*"
pandas = "*"
scipy = "*"
ipython = "*"
matplotlib = "*"
jupyter = "*"
[dev-packages]
[requires]
python_version = "2.7"
$ pipenv install produces:
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.
Hint: try $ pipenv lock --pre if it is a pre-release dependency.
Could not find a version that matches prompt-toolkit<2.0.0,<2.1.0,==1.0.15,>=1.0.0,>=1.0.4,>=2.0.0
Tried: 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.8, 0.9, 0.10, 0.11, 0.12, 0.13, 0.14, 0.15, 0.16, 0.17, 0.18, 0.19, 0.20, 0.21, 0.22, 0.23, 0.25, 0.26, 0.28, 0.30, 0.31, 0.32, 0.32, 0.32, 0.33, 0.33, 0.33, 0.34, 0.34, 0.34, 0.35, 0.35, 0.35, 0.36, 0.36, 0.36, 0.37, 0.37, 0.37, 0.38, 0.38, 0.38, 0.39, 0.39, 0.39, 0.40, 0.40, 0.40, 0.41, 0.41, 0.41, 0.42, 0.42, 0.42, 0.43, 0.43, 0.43, 0.44, 0.44, 0.44, 0.45, 0.45, 0.45, 0.46, 0.46, 0.46, 0.47, 0.47, 0.47, 0.48, 0.48, 0.48, 0.49, 0.49, 0.49, 0.50, 0.50, 0.50, 0.51, 0.51, 0.51, 0.52, 0.52, 0.52, 0.53, 0.53, 0.53, 0.54, 0.54, 0.54, 0.55, 0.55, 0.55, 0.56, 0.56, 0.56, 0.57, 0.57, 0.57, 0.58, 0.58, 0.58, 0.59, 0.59, 0.59, 0.60, 0.60, 0.60, 1.0.0, 1.0.0, 1.0.0, 1.0.1, 1.0.1, 1.0.1, 1.0.2, 1.0.2, 1.0.2, 1.0.3, 1.0.3, 1.0.3, 1.0.4, 1.0.4, 1.0.4, 1.0.5, 1.0.5, 1.0.5, 1.0.6, 1.0.6, 1.0.6, 1.0.7, 1.0.7, 1.0.7, 1.0.8, 1.0.8, 1.0.8, 1.0.9, 1.0.9, 1.0.9, 1.0.10, 1.0.10, 1.0.10, 1.0.13, 1.0.13, 1.0.13, 1.0.14, 1.0.14, 1.0.14, 1.0.15, 1.0.15, 1.0.15, 2.0.1, 2.0.1, 2.0.1, 2.0.2, 2.0.2, 2.0.2, 2.0.3, 2.0.3, 2.0.3, 2.0.4, 2.0.4, 2.0.4, 2.0.5, 2.0.5, 2.0.5
There are incompatible versions in the resolved dependencies.
EDIT: this uses pipenv 2018.7.1
This issue seems to be related to https://github.com/pypa/pipenv/issues/875, which does not seem to be completely solved (cc @vphilippon @nateprewitt @techalchemy ). I have a Pipfile with only jupyter with no constraint:
[[source]]
url = "https://pypi.org/simple"
verify_ssl = true
name = "pypi"
[packages]
jupyter = "*"
[dev-packages]
[requires]
python_version = "3.6"
When I run pipenv lock --verbose, I see that the best candidate for jupyter is 1.0.0, which only requires ipython>=5.0.0 and prompt-toolkit<2.0.0,>=1.0.0.
Then in round 2, it finds the best candidate for ipython to be 7.0.1 (the most recent version), which requires prompt-toolkit<2.1.0,>=2.0.0. At the end of round 2, there are the following lines:
adding ['ipython', '==7.0.1,>=4.0.0,>=5.0.0', '[]']
adding ['prompt-toolkit', '<2.0.0,<2.1.0,==1.0.15,>=1.0.0,>=2.0.0', '[]']
So it seems to be pinning the candidates and adding them as constraints, even though ipython==7.0.1 is not actually necessary for my Pipfile. Indeed, round 3 begins with the following current constraints:
ipython==7.0.1,>=4.0.0,>=5.0.0
prompt-toolkit<2.0.0,<2.1.0,==1.0.15,>=1.0.0,>=2.0.0 (1.0.15 was the best candidate found in round 2, and was subsequently pinned and added as a constraint).
So it really seems like https://github.com/pypa/pipenv/issues/875 is not fixed, unless I am missing something. Is there a reason pipenv's dependency resolution shouldn't find that, say, ipython==5.8.0 would satisfy the jupyter constraint of >=5.0.0 as well as the prompt-toolkit requirement of <2.0.0,>=1.0.0 (ipython 5.8.0 requires >=1.0.4,<2.0.0).
My configuration works just fine as a temporary workaround mentioned earlier by @wpsamurai. There is no need to use --skip-lock with it. In case of a problem you can further try pipenv lock --verbose and introduce results to the discussion.
[[source]]
url = "https://pypi.org/simple"
verify_ssl = true
name = "pypi"
[packages]
ipython = "<7.0.0"
jupyter = "*"
[dev-packages]
[requires]
python_version = "3.6"
Btw:
dragvs:~$ pipenv --version
pipenv, version 2018.7.1
I suppose that the version of Python may cause the problem.
In a directory, I invoked the following commands, which worked fine.
$ pyenv local 3.6.6
$ pipenv install jupyterlab
However, in another directory, I invoked the following commands, which resulted in the prompt_toolkit problem.
$ pyenv local 3.7.0
$ pipenv install jupyterlab
In a new clean venv pipenv install jupyterlab didn't produce any issue. In another messy venv I got rid of the issue with pipenv lock --clear
Most helpful comment
Same issue as well.
As a workaround you can install
ipython==6.5.0first and after thatjupyter: