entorno crear activate python ubuntu virtualenv pip

python - crear - ¿Por qué el congelamiento de pip informa algunos paquetes en un virtualenv nuevo creado con--no-site-packages?



virtualenv ubuntu (2)

Cuando creo un virtualenv nuevo, el pip freeze muestra que tengo un par de paquetes instalados a pesar de que no he instalado nada en el entorno. Esperaba que la pip freeze devolviera la salida vacía hasta después de mi primera pip install en el entorno. wsgiref es parte de la biblioteca estándar , ¿no es así? ¿Por qué aparece?

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

Alguna información extra:

(testing)day@garage:~/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)day@garage:~/testing$ deactivate day@garage:~/testing$ virtualenv --version 1.4.9 day@garage:~/testing$ which virtualenv /usr/bin/virtualenv day@garage:~/testing$ dpkg -S /usr/bin/virtualenv python-virtualenv: /usr/bin/virtualenv day@garage:~/testing$ cat /etc/lsb-release DISTRIB_ID=Ubuntu DISTRIB_RELEASE=11.04 DISTRIB_CODENAME=natty DISTRIB_DESCRIPTION="Ubuntu 11.04"


Cada vez que creas un virtualenv con --no-site-packages instala setuptools o distribute . Y la razón wsgiref aparece wsgiref es porque la biblioteca estándar de Python 2.5+ proporciona información de huevo a wsgiref lib (y pip no sabe si es stdlib o paquete de terceros).

Parece estar resuelto en Python3.3 +: http://bugs.python.org/issue12218


Para responder a una pregunta ligeramente diferente: puede excluir wsgiref (y cualquier otro archivo .egg similarmente problemático si tiene la mala suerte de tener alguno por alguna razón) al hacer un pip freeze -l lugar de un pip freeze de pip freeze .

pip help freeze describe esta opción:

-l, --local Si está en un virtualenv, no informe los paquetes instalados globalmente