Saltar al contenido

Haz tu vida más fácil con Virtualenvwrapper

Cuando haces mucha programación en Python, puedes arruinar tu sistema con Pip. Las diferentes aplicaciones necesitan diferentes requisitos. Una aplicación necesita la versión 1.2 de un paquete y otra la 1.5. Y luego … estás en problemas.

Cuando desee saber qué paquetes ha instalado Pip, use esto:

$ pip freeze

El resultado puede ser una lista muy larga.

Para cada proyecto, ya sea una aplicación simple o un proyecto gigante de Django, creo un nuevo entorno virtual con virtualenv. Una forma sencilla de hacerlo es mediante virtualenvwrapper.

Empezando con el envoltorio Virtualenv


$ sudo pip install virtualenvwrapper

Hay algunas configuraciones avanzadas que puede encontrar en el manual.

Cuando esté instalado, creemos un nuevo entorno llamado “campo de pruebas”.


$ mkvirtualenv testground

Si su virtualenvwrapper está funcionando bien, debería ver algo como esto:


New python executable in testground/bin/python
Installing Setuptools.........done.
Installing Pip..............done.
virtualenvwrapper.user_scripts creating /home/yourname/.virtualenvs/testground/bin/predeactivate
virtualenvwrapper.user_scripts creating /home/yourname/.virtualenvs/testground/bin/postdeactivate
virtualenvwrapper.user_scripts creating /home/yourname/.virtualenvs/testground/bin/preactivate
virtualenvwrapper.user_scripts creating /home/yourname/.virtualenvs/testground/bin/postactivate
virtualenvwrapper.user_scripts creating /home/yourname/.virtualenvs/testground/bin/get_env_details

(testground)[email protected]:~$ 

Eche un vistazo a la última línea, que ahora dice (testground) antes del indicador. Tu entorno virtual está ahí y tú estás en él.

Ahora, haga una congelación de pip, puede resultar en algo como esto:

$ pip freeze
argparse==1.2.1
wsgiref==0.1.2

Esa lista puede ser mucho más corta que la que se encuentra fuera del medio ambiente.

Ahora puede instalar algo que solo afecte a este entorno. Probemos Pillow, versión 2.2.2.


$ pip install Pillow==2.2.2

Ahora intentará instalar Pillow, cuando termine, haga otra congelación de pip fip y vea si está instalado

Cambiar entre virtualenvs

Creemos otro entorno:

$ mkvirtualenv coolapp

una vez terminado, debería haberse activado automáticamente:


...................done.
virtualenvwrapper.user_scripts creating /home/yourname/.virtualenvs/coolapp/bin/predeactivate
virtualenvwrapper.user_scripts creating /home/yourname/.virtualenvs/coolapp/bin/postdeactivate
virtualenvwrapper.user_scripts creating /home/yourname/.virtualenvs/coolapp/bin/preactivate
virtualenvwrapper.user_scripts creating /home/yourname/.virtualenvs/coolapp/bin/postactivate
virtualenvwrapper.user_scripts creating /home/yourname/.virtualenvs/coolapp/bin/get_env_details
(coolapp)[email protected]:~$ 

Ahora, cambiemos a puño el virtualenv que hicimos con la palabra mágica “workon”:

Entrenamiento de Python recomendado

Para el entrenamiento de Python, nuestra principal recomendación es DataCamp.

$ workon testground
(testground)[email protected]:~$ 

Ahí tienes, es tan simple como eso

Sin paquetes de sitio

Al igual que con vitualenv, puede decirle a virtualenvwapper que no use los paquetes del sitio del sistema con –no-site-packages:


$ mkvirtualenv anotherenv --no-site-packages

Eliminar un entorno virtual

Es muy fácil deshacerse de un entorno virtual usando rmvirtualenv:


$ rmvirtualenv coolapp

Removing coolapp...

Lista de todos los virtualenvs


$lsvirtualenv

Enumere los paquetes de su sitio


$ lssitepackages

#can result in this:
easy_install.py   Pillow-2.2.2-py2.7.egg-info  pkg_resources.pyc
easy_install.pyc  pip                          setuptools
_markerlib        pip-1.4.1-py2.7.egg-info     setuptools-0.9.8-py2.7.egg-info
PIL               pkg_resources.py

Entrenamiento de Python recomendado

Para el entrenamiento de Python, nuestra principal recomendación es DataCamp.