¿Que es virtualenvwrapper?
Virtualenvwrapper es una herramienta que sirve para crear entornos aislados de desarrollo en python, en cristiano… es una herramienta que nos facilita tener varias versiones de un mismo programa, librería, framework o lo que sea, pero enfocado al lenguaje de programación python… por ejemplo, tengo 3 entornos virtuales, y en los tres entornos o (virtualenvs) tengo 3 versiones de django distintas, en la primera django 1.0 en la segunda la 0.96 y en la tercera la 1.4, es como si tuviéramos tres maquinas distintas, pero en una sola.
¿Ok vale, pero para que me sirve esto?
Simple los entornos virtuales o virtualenvs, nos sirven para probar una aplicación en distintos entornos, sin modificar los programas que verdaderamente tienes en tu maquina, por ejemplo, al crear un entorno virtual todo lo que instalemos estando dentro del entorno virtual quedara disponible solo en el entrono virtual, es decir, si en mi maquina tengo Django 1.1, al entrar al virtualenv puedo tener Django 1.3 o 1.4, sin que esto entre en conflicto con el que esta instalado fuera del entorno virtual.
Bien… ¿entonces como se usa?
Antes de decir como se usa virtualenv, vamos a ver como instalarlo en la maquina.
Primero debemos instalar easy-install, esto se instala con el siguiente paquete:
sudo aptitude install python-setuptools
despues de haber termminado la instalación de python-setuptools… instalaríamos pip
sudo easy_install pip
cuando termine de instalar pip que es como un yum o un apt-get instalaríamos virtualenvwrapper que nos facilita la vida al crear entornos virtuales, para instalarlo hariamos los siguiente:
sudo pip install virtualenvwrapper
¿Porque virtualenvwrapper y no solo virtualenv?
Virtualenvwrapper es una herramienta que automatiza el trabajo que hace virtualenv, en otras palabras, todo es mas rápido con virtualenvwrapper.
Listo, ya tengo instalado virtualenvwrapper… ¿y ahora que?
Lo que nos falta es crear un entrono virtual que se hacer con la siguiente linea
mkvirtualenv nombre_de_tu_entorno_virtual
que mostrara una salida como la siguiente:
New python executable in nombre_de_tu_entorno_virtual/bin/python Installing setuptools............done. Installing pip...............done. virtualenvwrapper.user_scripts creating /home/server-axiacore-andresito/.virtualenvs/nombre_de_tu_entorno_virtual/bin/predeactivate virtualenvwrapper.user_scripts creating /home/server-axiacore-andresito/.virtualenvs/nombre_de_tu_entorno_virtual/bin/postdeactivate virtualenvwrapper.user_scripts creating /home/server-axiacore-andresito/.virtualenvs/nombre_de_tu_entorno_virtual/bin/preactivate virtualenvwrapper.user_scripts creating /home/server-axiacore-andresito/.virtualenvs/nombre_de_tu_entorno_virtual/bin/postactivate virtualenvwrapper.user_scripts creating /home/server-axiacore-andresito/.virtualenvs/nombre_de_tu_entorno_virtual/bin/get_env_details
Excelente, ya tienes tu entorno virtual, ahora hay que interactuar con el.
Y la mejor forma de hacerlo es entrando en el con el siguiente comando
workon nombre_de_tu_entorno_virtual
al hacer esto, inmediatamente cambia el prompt del terminal algo parecido a esto:
(nombre_de_tu_entorno_virtual)tu_usuario@nombre_de_tu_maquina:~$
ya estamos dentro del entorno virtual, y para ir a la raíz del entorno debemos teclear la siguiente linea:
cdvirtualenv
después de oprimir la tecla enter virtualenvwrapper nos envía directamente a la raíz del entorno.
Al teclear el comando ls dentro del entorno nos mostrara una estructura de carpetas parecida a la siguiente.
bin include lib local
para ver que esta instalado en nuestro virtualenv usaríamos el siguiente comando:
pip freeze
que por ahora tendría una salida como:
wsgiref==0.1.2
Ahora bien, si queremos instalar la ultima versión del cms merengue digitaríamos esto en consola:
pip install merengue
después de que pip termine de instalar merengue con sus dependencias podemos volver a escribir el comando pip freeze para saber que fue instalado junto con merengue, la salida de este comando seria distinta a la ultima vez:
Warning: cannot find svn location for django-inlinetrans==0.4.12bdev-r70 BeautifulSoup==3.2.0 Django==1.3.1 PIL==1.1.7 South==0.7.3 cmsutils==0.6.6 cssutils==0.9.9 django-ajax-selects==1.1.4 django-announcements==0.1.2 django-autoreports==0.8.4 django-classy-tags==0.3.0 django-compressor==0.5.3 django-configfield==0.1.0-beta django-debug-toolbar==0.9.4 django-extensions==0.5 django-form-admin==0.3.2 django-genericforeignkey==0.60.4 ## FIXME: could not find svn URL in dependency_links for this package: django-inlinetrans==0.4.12bdev-r70 django-inplaceedit==0.81 django-mptt==0.4.2 django-notification==0.1.5 django-oembed==0.1.3 django-oot==0.8.4 django-pagination==1.0.7 django-stdfile==0.5 django-tagging==0.3.1 django-threadedcomments==0.5.3 django-transmeta==0.6.6 encutils==0.9 feedparser==5.1 httplib2==0.7.2 johnny-cache==0.3.3 merengue==0.8.0 oauth2==1.5.211 python-twitter==0.8.2 recaptcha-client==1.0.6 searchform==0.1.3dev simplejson==2.3.2 sorl-thumbnail==11.12 template-utils==0.4p2 transhette==0.5.10 wsgiref==0.1.2
Ahora con este ejemplo practico, sabemos que los entornos virtuales sirven para tener distintas versiones de librerias y frameworks, sin que causen conflicto alguno en nuestra maquina y que pip es un administrador de paquetes parecido a apt o yum.
Eliminando software con pip
Cuando quieras eliminar software que halla sido instalado con pip la forma de hacer sera escribiendo lo siguiente desde un terminal:
pip uninstall nombre_del_paquete
para saber mas comandos y tener una vision mas amplia sobre pip puedes ir a la web del proyecto:
http://www.pip-installer.org/en/latest/index.html
Salir de un entorno virtual
Cuando queramos salir de nuestro entorno virtual, es decir, desactivar el entorno, para poder trabajar en otras tareas que no tienen nada que ver con virtualenv, esta tarea se hace con el siguiente comando.
deactivate
Este apartado fue sugerido por uno de los comentarios de este post, doy mil gracias al lector, la verdad se me había pasado.
Para entender mejor este comando pueden entrar al link que nos dejo el lector.
http://stackoverflow.com/questions/990754/how-to-leave-a-python-virtualenv
Ver lista de entornos virtuales creados
Muchas veces tenermos varios entornos virtuales creados, la forma de ver los entorno virtuales es escribiendo el siguiente comando en una terminal:
lsvirtualenv
al introducir el anterior comando se mostrara una lista de los entornos virtuales creados.
Eliminando un entorno virtual
Finalmente cuando quieras eliminar un entorno virtual lo unico que tienes que hacer el escribir en un terminal es lo siguiente:
rmvirtualenv nombre_del_entornovirtual
Como pudiste averte dado cuenta los comandos que proporciona virtualven son muy parecidos a los comandos de UNIX asi que si estas aconstumbrado a trabajar en ambientes UNIX seguro entenderas rapidamente los comandos que nos brinda virtualenvwrapper.
Andrewnix
![]()
![]()

Comentarios en: "Que es virtualenvwrapper y pip, para que sirven y como los uso?" (8)
Don Andrés, la guía que hacía falta en español #bienpaque
ey man, gracias por el comment
me sirvió bastante, gracias
Gracias por tu lectura man
muy bueno master!
Leo muchas gracias por tu comentario
Hola.
Por si quieres completarlo con este pequeño detalle…
http://stackoverflow.com/questions/990754/how-to-leave-a-python-virtualenv
Por lo demás, el articulo esta genial!. Gracias.
Muchas gracias por el link, ya fue modificado el post, gracias por tu lectura