2013-06-17 15 views
17

È possibile forzare virtualenv a utilizzare gli ultimi setuptools e pip disponibili da pypi? In sostanza, sto cercando il di fronte della bandiera --never-download.Come forzare virtualenv a installare i più recenti setuptools e pip da pypi?

Attualmente, quando creo una nuova virtualenv, utilizza le versioni locali (vecchie) fornite in bundle 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 
[...] 

risposta

11

Non è supportato per motivi di sicurezza.

Utilizzando virtualenv.py come uno script isolata (cioè senza una directory virtualenv_support associato) non è più supportata per la sicurezza ragioni e non riuscirà con un errore. Insieme a questo, - mai scaricare viene sempre bloccato su True, e viene mantenuto solo nel breve periodo per compatibilità con le versioni precedenti (Pull # 412).

non posso utilizzare l'opzione --extra-search-dir o perché è attualmente in rotta https://github.com/pypa/virtualenv/issues/327

Sembra che l'unica opzione è quella di aspettare semplicemente per i manutentori virtualenv per aggiornare i pacchetti in bundle?

8

È possibile aggiornare pip dopo aver installato il virtualenv utilizzando pip install -U pip.

Sono sicuro che è possibile scrivere uno script di bootstrap per automatizzare questo passaggio.

2

Avevo bisogno dell'ultima libreria di setuptools e il flag --extra-search-dir non funzionava per me (anche se è stato corretto apparentemente).

Tuttavia, fare un virtualenv senza setuptools e quindi installare direttamente da PyPi ha funzionato alla grande. E.g. di istituire un virtualenv chiamato test:

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

Test con

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

mostra la versione destra.

+0

molto bella soluzione! – pymarco

0

Sulla ematsen di excellent answer ho fatto uno script bash che funziona 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] 
0

Ho incontrato lo stesso problema, e mi è stato risolto con l'aggiornamento setuptools.

Se env è il tuo env virtuale, eseguire il seguente:

$ env/bin/pip install --upgrade setuptools

Problemi correlati