Skip to content
Aprende Angular de forma rápida y efectiva  Ver curso

VirtualenvWrapper: Tu Virtualenv, vitaminado

Presentando a VirtualEnvWrapper

virtualenvwrapper es un conjunto de extensiones para virtualenv que te harán la vida más fácil. Entre otras cosas, permite:

  • organizar todos tus entornos virtuales desde un espacio centralizado, de un modo más transparente
  • comandos para la gestión de tus entornos virtuales (create, delete, copy)
  • Cambiar de entorno virtual con un simple comando
  • Autocompletar comandos de virtualenv

Podéis encontrar mucha más información sobre virtualenvwrapper en su documentación

Instalando VirtualEnvWrapper

Como se supone que ya tenemos instalada la herramienta pip,

  1. instalamos virtualenv (si no lo teníamos ya instalado):

    miusuario$: sudo pip install virtualenv

    miusuario$: sudo pip install virtualenvwrapper

  2. Ahora editamos la configuración de inicio de nuestro terminal (.bash_profile o .profile) para añadir lo siguiente:

    #directorio donde vivirán los entornos virtuales
    export WORKON_HOME=$HOME/.virtualenvs
    #nos aseguramos de que los entornos virtuales esten aislados del directorio site-packages
    export VIRTUALENVWRAPPER_VIRTUALENV_ARGS=’–no-site-packages’
    #usamos el mismo directorio para virtualenv que para virtualenvwrapper
    export PIP_VIRTUALENV_BASE=$WORKON_HOME
    #permitimos a PIP detectar y usar virtualenv
    export PIP_RESPECT_VIRTUALENV=true
    #determinamos el directorio donde se encuentra el script de virtualenvwrapper
    source /usr/local/bin/virtualenvwrapper.sh

Deberemos comprobar que el script virtualenvwrapper.sh está donde le hemos indicado con source. Por el momento hemos puesto la dirección habitual donde lo mete pip.

Hay un detalle interesante de esta instalación. Le hemos indicado que nos meta todos los entornos virtuales en el directorio .virtualenvs. Lo podemos llamar de cualquier modo, por supuesto, pero es interesante usar el punto delante (lo convierte en un directorio oculto), para que no nos moleste su contenido (realmente no nos interesa el contenido, ya que mientras usemos el comando freeze, podremos clonar el entorno virtual sin necesidad de copiar el directorio del entorno virtual.

Creando un nuevo entorno virtual

Para crear un entorno virtual, ejecutamos en consola:

miusuario$:mkvirtualenv miNuevoEntorno

Esto creará un nuevo entorno denominado miNuevoEntorno, y además, lo activará para que podamos empezar a trabajar en él.

Activar un entorno virtual

A diferencia de virtualenv, que nos obligaba a entrar en la carpeta que poseía el entorno que queríamos activar, con virtualenvwrapper solo tenemos que recordar su nombre y ejecutar por consola:

miusuario$: workon miNuevoEntorno

Lo que activará el entorno, cosa que podremos verificar por el cambio en el terminal:

(miNuevoEntorno)$:

Desactivar un entorno virtual

Para desactivar el entorno activo, solo tenemos que ejecutar lo siguiente:

(miNuevoEntorno)$:deactivate

Eliminar un entorno virtual

Para eliminar un entorno virtual, ejecutamos:

(miusuario)$:rmvirtualenv miEntornoAEliminar

Guardar instalaciones en el entorno

Supongamos que hemos instalado algunos paquetes en nuestro entorno virtual (activo) a través de pip. Por ejemplo:

(miNuevoEntorno)$:pip install django
(miNuevoEntorno)$:pip install south
(miNuevoEntorno)$:pip install fabric

Podemos recoger esta información con el comando pip freeze para futuras migraciones:

(miNuevoEntorno)$:pip freeze > requirements.txt

recuperando / migrando un entorno

Supongamos que queremos crear un entorno virtual con todas las dependencias de otro ya existente.

Primero, creamos en entorno virtual.

(miusuario)$:mkvirtualenv otroNuevoEntorno

Y acto seguido, instalamos las dependencias del fichero que hemos creado anteriormente con el comando freeze.

(otroNuevoEntorno)$:pip install -r requirements.txt

Hasta la próxima

Eso es todo, espero que te haya resultado un artículo útil.

Published inDjango

3 Comments

  1. por favor agregad como buscar a través de synatic la ubicación de virtualenvwrapper.sh en mi caso de kubuntu es:

    /usr/share/virtualenvwrapper/virtualenvwrapper.sh

  2. spideep spideep

    El punto 2 de Instalando VirtualEnvWrapper me dió problemas pues incluía ’–no-site-packages’ como segundo argumento de mkvirtualenv

    • Pancho Pancho

      Buenas, tuve el mismo problema que el compñero, quizas si pudieras realizar esa corrección, o al menos agregar una nota estaría de lujo para quien caiga por estos lados en busca de tu buen consejo 🙂 🙂 🙂 🙂

Deja un comentario