org python virtualenv pip setuptools virtualenvwrapper

pypi python org pip



¿Cómo forzar a virtualenv a instalar las últimas herramientas de configuración y pip de pypi? (5)

¿Es posible forzar a virtualenv a usar las últimas herramientas de configuración y pip disponibles desde pypi? Esencialmente, estoy buscando lo opuesto a la --never-download .

Actualmente, cuando hago un nuevo virtualenv, utiliza las versiones locales (antiguas) que vienen empaquetadas con virtualenv.

$ v.mk testvenv New python executable in testvenv/bin/python Installing setuptools............done. Installing pip...............done. $ pip show setuptools --- Name: setuptools Version: 0.6c11 Location: /Users/cwilson/.virtualenvs/testvenv/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg Requires: $ pip search setuptools [...] setuptools - Easily download, build, install, upgrade, and uninstall Python packages INSTALLED: 0.6c11 LATEST: 0.7.2 [...]


Me encontré con el mismo problema y lo solucioné actualizando setuptools .

Si env es tu env virtual, ejecuta lo siguiente:

$ env/bin/pip install --upgrade setuptools


Necesitaba la última biblioteca de herramientas de configuración, y el --extra-search-dir no funcionaba para mí (aunque aparentemente se ha corregido).

Sin embargo, hacer un virtualenv sin setuptools y luego instalarlo directamente desde PyPi funcionó muy bien. Por ejemplo, para configurar un virtualenv llamado test :

virtualenv --no-setuptools test source test/bin/activate wget https://bootstrap.pypa.io/ez_setup.py -O - | python easy_install pip

Probando con

python -c ''import setuptools; print setuptools.__version__''

Muestra la versión correcta.


No es compatible por razones de seguridad.

El uso de virtualenv.py como un script aislado (es decir, sin un directorio asociado virtualenv_support) ya no es compatible por razones de seguridad y fallará con un error. Junto con esto, --never-download ahora siempre se fija en True, y solo se mantiene a corto plazo para compatibilidad con versiones anteriores (Pull # 412).

No puedo usar la --extra-search-dir porque actualmente no funciona https://github.com/pypa/virtualenv/issues/327

¿Parece que la única opción es simplemente esperar a que los mantenedores de virtualenv actualicen los paquetes empaquetados?


Puede actualizar pip después de instalar su virtualenv usando pip install -U pip .

Estoy seguro de que podrías escribir un script de arranque para automatizar este paso.


Sobre la base de la excelente respuesta de Ematsen, hice un script de bash que funciona con virtualenvwrapper

#!/bin/bash source `which virtualenvwrapper.sh` mkvirtualenv --no-setuptools $1 wget https://bootstrap.pypa.io/ez_setup.py -O - | python rm setuptools-*.zip easy_install pip # for python version < 2.7.9 # https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings pip install urllib3[secure]