2011-07-08 8 views
52

Quando creo un nuovo virtualenv, pip freeze mostra che ho installato un paio di pacchetti anche se non ho installato nulla nell'ambiente. Mi aspettavo che pip freeze restituisca l'output vuoto fino a dopo il mio primo pip install nell'ambiente. wsgiref is part of the standard library non è così, quindi perché si presenta a tutti?Perché pip freeze segnala alcuni pacchetti in una nuova virtualenv creata con --no-site-packages?

 
[email protected]:~$ mkdir testing 
[email protected]:~$ cd testing 
[email protected]:~/testing$ virtualenv --no-site-packages . 
New python executable in ./bin/python 
Installing distribute.......................................................... 
............................................................................... 
.........................................done. 
[email protected]:~/testing$ . bin/activate 
(testing)[email protected]:~/testing$ pip freeze 
distribute==0.6.10 
wsgiref==0.1.2 

qualche informazione in più:

 
(testing)[email protected]:~/testing$ pip --version 
pip 0.7.2 from /home/day/testing/lib/python2.7/site-packages/pip-0.7.2-py2.7.eg 
g (python 2.7) 
(testing)[email protected]:~/testing$ deactivate 
[email protected]:~/testing$ virtualenv --version 
1.4.9 
[email protected]:~/testing$ which virtualenv 
/usr/bin/virtualenv 
[email protected]:~/testing$ dpkg -S /usr/bin/virtualenv 
python-virtualenv: /usr/bin/virtualenv 
[email protected]:~/testing$ cat /etc/lsb-release 
DISTRIB_ID=Ubuntu 
DISTRIB_RELEASE=11.04 
DISTRIB_CODENAME=natty 
DISTRIB_DESCRIPTION="Ubuntu 11.04" 
+0

distribuire è ciò che fornisce pip stesso, quindi se si vuole essere in grado di utilizzare pip per installare cose nella virtualenv che è necessario avviare con pip. pip dipende da wsgiref. –

+3

pip non dipende da wsgiref –

risposta

44

Ogni volta che si crea una virtualenv con --no-site-packages si installa setuptools o distribute. E il motivo wsgiref appare perché la libreria standard python 2.5+ fornisce le informazioni sull'uovo a wsgiref lib (e pip non sa se è stdlib o pacchetto di terze parti).

Sembra da risolvere il Python3.3 +: http://bugs.python.org/issue12218

+0

Grazie mille. +1 per 3.3 bugref :) – Day

+0

Quindi è sicuro rimuovere wsgiref? Grazie per le informazioni! – Paolo

+1

No, non è sicuro rimuoverlo, dal momento che 'wsgiref' fa parte della libreria standard python: http://docs.python.org/library/wsgiref.html –

29

per rispondere a una domanda un po 'diversa: è possibile escludere wsgiref (e qualsiasi altro file .egg similmente-problematici se siete abbastanza sfortunati da avere alcuna per un po' motivo) facendo pip freeze -l anziché pip freeze.

pip help freeze descrive questa opzione:

-l, --local Se in un virtualenv, non riportano i pacchetti a livello globale-installati

+2

Grazie, è utile. – Day

+0

distribuito sarà ancora elencato, tho ... –

+2

Mi ci è voluto troppo tempo per trovare questa risposta. Mi serviva il '-l' – blockloop

Problemi correlati