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]