Tutorial de Python virtualenvwrapper

Monty Python lived here Monty Python lived here por Lydia. CC BY. Imagen con calidad y tamaño reducidos.

Es posible potenciar las capacidades de la utilidad virtualenv con las extensiones creadas por Doug Hellmann compiladas en un paquete Python llamado virtualenvwrapper que facilitarán notoriamente la gestión de un gran número de entornos virtuales.

Cómo instalar la utilidad virtualenvwrapper

Es posible instalarla usando el gestor de paquetes de las distribuciones Linux:

>> Archlinux
$ sudo pacman -S python-virtualenvwrapper

>> Fedora
$ sudo dnf install python-virtualenvwrapper

>> Debian, Ubuntu
$ sudo apt-get install virtualenvwrapper

O se puede usar pip:

>> Linux, OS X
$ sudo pip install virtualenvwrapper

>> Archlinux
>> (si pip ha sido instalado usando el gestor de paquetes)
$ sudo pip2 install virtualenvwrapper

Configuración de virtualenvwrapper

Por defecto virtualenvwrapper crea los virtualenvs en la carpeta ~/.virtualenvs. Sin embargo ese comportamiento se puede cambiar. Para eso se necesita agregar un par de variables de entorno al archivo ~/.bashrc ó ~/.bash_profile:

export WORKON_HOME=/opt/virtualenvs
export VIRTUALENVWRAPPER_HOOK_DIR=$WORKON_HOME/hooks

La variable WORKON_HOME determina en que directorio se deben crear los virtualenvs al ejecutar el comando mkvirtualenv.

La segunda variable, VIRTUALENVWRAPPER_HOOK_DIR, establece el directorio en donde se instalaran algunos scripts que pueden ser usados para automatizar ciertas tareas, como por ejemplo hacer un commit a un repositorio justo antes de desactivar el virtualenv.

Por último, se debe agregar una línea al archivo ~/.bashrc ó ~/.bash_profile para especificar en dónde esta ubicado el ejecutable de virtualenvwrapper:

source /usr/bin/virtualenvwrapper.sh

Si se ha instalado virtualenvwrapper en Debian usando el gestor de paquetes, es probable que la línea de arriba no funcione. Intente la siguiente:

source /etc/bash_completion.d/virtualenvwrapper

Si las dos líneas anteriores han fallado, es posible que el archivo virtualenvwrapper.sh se encuentre ubicado en el directorio /usr/local/bin/:

source /usr/local/bin/virtualenvwrapper.sh

Lo que hace este último comando es procesar el código contenido en el script virtualenvwrapper.sh dentro del shell o terminal que estamos utilizando para que los comandos mkvirtualenv, rmvirtualenv y workon estén disponibles.

Cómo crear un Python virtualenv con virtualenvwrapper

Se debe ejecutar el comando mkvirtualenv más el nombre del virtualenv. Las extensiones se encargan de manera automática de crear el virtualenv en el directorio correspondiente:

$ mkvirtualenv mi_proyecto

Cómo eliminar Python virtualenvs con virtualenvwrapper

Al ejecutar el comando rmvirtualenv más el nombre del virtualenv, virtualenvwrapper se encarga de borrar el virtualenv con todas los paquetes que hayamos instalado en él:

$ rmvirtualenv mi_proyecto

Cómo activar un Python virtualenv con virtualenvwrapper

Para activar un virtualenv solamente se necesita ejecutar el comando workon más el nombre del virtualenv en la terminal:

$ workon mi_proyecto

Lo cual es mas fácil que activar un virtualenv de forma manual:

$ cd mi_proyecto
$ source bin/activate