Closed ipwnponies closed 7 years ago
This does not happen when installing with plain old virtualenv:
$ pip install -r requirements.txt
Collecting mycli (from -r requirements.txt (line 1))
Using cached mycli-1.12.1-py2.py3-none-any.whl
Collecting powerline-status (from -r requirements.txt (line 2))
Collecting ipython (from -r requirements.txt (line 3))
Using cached ipython-6.1.0-py3-none-any.whl
Collecting http-prompt (from -r requirements.txt (line 4))
Using cached http_prompt-0.10.2-py2.py3-none-any.whl
Collecting neovim==0.1.10 (from -r requirements.txt (line 5))
Collecting cli-helpers[styles]>=0.2.3 (from mycli->-r requirements.txt (line 1))
Using cached cli_helpers-0.2.3-py2.py3-none-any.whl
Collecting sqlparse<0.3.0,>=0.2.2 (from mycli->-r requirements.txt (line 1))
Using cached sqlparse-0.2.3-py2.py3-none-any.whl
Collecting Pygments>=1.6 (from mycli->-r requirements.txt (line 1))
Using cached Pygments-2.2.0-py2.py3-none-any.whl
Collecting cryptography>=1.0.0 (from mycli->-r requirements.txt (line 1))
Using cached cryptography-2.0.3-cp35-cp35m-macosx_10_6_intel.whl
Collecting click>=4.1 (from mycli->-r requirements.txt (line 1))
Using cached click-6.7-py2.py3-none-any.whl
Collecting prompt-toolkit<1.1.0,>=1.0.10 (from mycli->-r requirements.txt (line 1))
Using cached prompt_toolkit-1.0.15-py3-none-any.whl
Collecting PyMySQL>=0.6.7 (from mycli->-r requirements.txt (line 1))
Using cached PyMySQL-0.7.11-py2.py3-none-any.whl
Collecting configobj>=5.0.5 (from mycli->-r requirements.txt (line 1))
Collecting jedi>=0.10 (from ipython->-r requirements.txt (line 3))
Using cached jedi-0.10.2-py2.py3-none-any.whl
Collecting simplegeneric>0.8 (from ipython->-r requirements.txt (line 3))
Collecting decorator (from ipython->-r requirements.txt (line 3))
Using cached decorator-4.1.2-py2.py3-none-any.whl
Collecting traitlets>=4.2 (from ipython->-r requirements.txt (line 3))
Using cached traitlets-4.3.2-py2.py3-none-any.whl
Requirement already satisfied: setuptools>=18.5 in ./bar/lib/python3.5/site-packages (from ipython->-r requirements.txt (line 3))
Collecting pexpect; sys_platform != "win32" (from ipython->-r requirements.txt (line 3))
Using cached pexpect-4.2.1-py2.py3-none-any.whl
Collecting appnope; sys_platform == "darwin" (from ipython->-r requirements.txt (line 3))
Using cached appnope-0.1.0-py2.py3-none-any.whl
Collecting pickleshare (from ipython->-r requirements.txt (line 3))
Using cached pickleshare-0.7.4-py2.py3-none-any.whl
Collecting httpie>=0.9.2 (from http-prompt->-r requirements.txt (line 4))
Using cached httpie-0.9.9-py2.py3-none-any.whl
Collecting parsimonious>=0.6.2 (from http-prompt->-r requirements.txt (line 4))
Collecting six>=1.10.0 (from http-prompt->-r requirements.txt (line 4))
Using cached six-1.10.0-py2.py3-none-any.whl
Collecting msgpack-python>=0.4.0 (from neovim==0.1.10->-r requirements.txt (line 5))
Collecting greenlet (from neovim==0.1.10->-r requirements.txt (line 5))
Collecting backports.csv>=1.0.0 (from cli-helpers[styles]>=0.2.3->mycli->-r requirements.txt (line 1))
Using cached backports.csv-1.0.5-py2.py3-none-any.whl
Collecting terminaltables>=3.0.0 (from cli-helpers[styles]>=0.2.3->mycli->-r requirements.txt (line 1))
Collecting asn1crypto>=0.21.0 (from cryptography>=1.0.0->mycli->-r requirements.txt (line 1))
Using cached asn1crypto-0.22.0-py2.py3-none-any.whl
Collecting cffi>=1.7 (from cryptography>=1.0.0->mycli->-r requirements.txt (line 1))
Using cached cffi-1.10.0-cp35-cp35m-macosx_10_6_intel.whl
Collecting idna>=2.1 (from cryptography>=1.0.0->mycli->-r requirements.txt (line 1))
Using cached idna-2.6-py2.py3-none-any.whl
Collecting wcwidth (from prompt-toolkit<1.1.0,>=1.0.10->mycli->-r requirements.txt (line 1))
Using cached wcwidth-0.1.7-py2.py3-none-any.whl
Collecting ipython-genutils (from traitlets>=4.2->ipython->-r requirements.txt (line 3))
Using cached ipython_genutils-0.2.0-py2.py3-none-any.whl
Collecting ptyprocess>=0.5 (from pexpect; sys_platform != "win32"->ipython->-r requirements.txt (line 3))
Using cached ptyprocess-0.5.2-py2.py3-none-any.whl
Collecting requests>=2.11.0 (from httpie>=0.9.2->http-prompt->-r requirements.txt (line 4))
Using cached requests-2.18.3-py2.py3-none-any.whl
Collecting pycparser (from cffi>=1.7->cryptography>=1.0.0->mycli->-r requirements.txt (line 1))
Collecting certifi>=2017.4.17 (from requests>=2.11.0->httpie>=0.9.2->http-prompt->-r requirements.txt (line 4))
Using cached certifi-2017.7.27.1-py2.py3-none-any.whl
Collecting urllib3<1.23,>=1.21.1 (from requests>=2.11.0->httpie>=0.9.2->http-prompt->-r requirements.txt (line 4))
Using cached urllib3-1.22-py2.py3-none-any.whl
Collecting chardet<3.1.0,>=3.0.2 (from requests>=2.11.0->httpie>=0.9.2->http-prompt->-r requirements.txt (line 4))
Using cached chardet-3.0.4-py2.py3-none-any.whl
Installing collected packages: backports.csv, terminaltables, Pygments, cli-helpers, sqlparse, six, asn1crypto, pycparser, cffi, idna, cryptography, click, wcwidth, prompt-toolkit, PyMySQL, configobj, mycli, powerline-status, jedi, simplegeneric, decorator, ipython-genutils, traitlets, ptyprocess, pexpect, appnope, pickleshare, ipython, certifi, urllib3, chardet, requests, httpie, parsimonious, http-prompt, msgpack-python, greenlet, neovim
Successfully installed PyMySQL-0.7.11 Pygments-2.2.0 appnope-0.1.0 asn1crypto-0.22.0 backports.csv-1.0.5 certifi-2017.7.27.1 cffi-1.10.0 chardet-3.0.4 cli-helpers-0.2.3 click-6.7 configobj-5.0.6 cryptography-2.0.3 decorator-4.1.2 greenlet-0.4.12 http-prompt-0.10.2 httpie-0.9.9 idna-2.6 ipython-6.1.0 ipython-genutils-0.2.0 jedi-0.10.2 msgpack-python-0.4.8 mycli-1.12.1 neovim-0.1.10 parsimonious-0.8.0 pexpect-4.2.1 pickleshare-0.7.4 powerline-status-2.6 prompt-toolkit-1.0.15 ptyprocess-0.5.2 pycparser-2.18 requests-2.18.3 simplegeneric-0.8.1 six-1.10.0 sqlparse-0.2.3 terminaltables-3.1.0 traitlets-4.3.2 urllib3-1.22 wcwidth-0.1.7
This might be an issue with how venv-update works and handles unpinned requirements.
Okay, so pip
doesn't correctly handle version conflicts: https://github.com/pypa/pip/issues/988.
The issue is now to update pin the version conflicts. We can choosely to loosely pin the versions or strictly pin them. Loosely pinning will allow for updates to automagically trickle in. Strictly pinning means the virtualenv can be reliably recreated but we'd need to be proactive on bumping.
We should install https://github.com/Yelp/requirements-tools and visualize-requirements
to find out who is depends on idna
. And we might as well use upgrade-requirements
to generate the pinned requirements.
Installing the requirements with venv-update causes a version conflict with
idna
package: