sábado, 23 de noviembre de 2013

Virtualenv II, yendo más allá con virtualenvwrapper


En una entrada anterior vimos algo de Virtualenv, ahora vamos a ver cómo usar una herramienta que facilita un tanto su uso, Virtualenvwraper.

¿Qué es Virtualenvwrapper?
Virtualenvwrapper es un conjunto de herramientas para extender Virtualenv. Éstas herramientas incluyen wrappers o contenedores para la creación y eliminación de entornos virtuales y la gestión del flujo de trabajo para desarrollo, facilitando trabajar en más de un proyecto a la vez sin generar conflictos entre dependencias.

Características de Virtualenvwrapper
  • Organiza todos sus entornos virtuales en un solo lugar.
  • Wrappers para la gestión de sus entornos virtuales (crear, borrar, copiar).
  • Facilita cambiar entre entornos con un solo comando.
  • Implementa el uso de la tecla de tabulación (tab) para los argumentos de las ordenes de los entornos virtuales (no válido para el CMD de Windows, para esto es necesario tener una shell Cygwin).
  • Posibilidad para que el usuario cree hooks (ganchos) en todas las operaciones para ejecutar acciones propias. 
  • Sistema de plug-ins para la creación de extensiones.
Instalación
Luego de tener instalado Virtualenv instalamos Virtualenvwrapper mediante la orden
easy_install virtualenvwrapper
o
pip install virtualenvwrapper
Luego de esto es necesario configurarlo, para esto debemos seleccionar la carpeta en la cual quedarán almacenados los entornos, para este caso la carpeta de entornos quedará en el directorio del usuaio y se llamará .entornos (Para los sistemas *nix el punto al principio oculta los entornos) .  Entonces debemos establecer una variable al sistema (para Windows también es necesario agregar una ruta al path del sistema), esto se hace así:

Para sistemas *nix (Linux, MacOSX)
Buscar un archivo en la carpeta de usuario llamado .bashrc o .bash_profile, ábrelo con tu editor preferido y pones las siguientes líneas:
export WORKON_HOME=$HOME/.entornos
source /usr/local/bin/virtualenvwrapper.sh
En estas dos líneas lo que hacemos es definir cuál es el directorio donde vamos a guardar los entornos y en la que sigue estamos ejecutando el script de inicialización de virtualenvwrapper. Recuerda que podrías poner cualquier ruta del sistema por ejemplo:
export WORKON_HOME=/tmp/entornos
o
export WORKON_HOME=/home/andres/proyectos/entornos
Después de esto es necesario recargar las variables de entorno, si editamos el archivo .bashrc lo hacemos así:
source ~/.bashrc
si editamos el archivo .bash_history lo hacemos así:
source ~/.bash_history
Nota: También podrías simplemente cerrar y reabrir la consola, así se recargaría automáticamente.

Para Sistemas Windows:
Después de tener instalado Virtualenv en Windows (recuerda el post anterior) debes instalar desde la linea de comandos (CMD) virtualenvwrapper mediante la orden:
pip install virtualenvwrapper-win
después debes crear la carpeta para los entornos así:
mkdir %USERPROFILE%\entornos
y luego debes establecer las variables en el entorno así:
  • Entra al menú de propiedades:
    • Accede al menú de Inicio, click derecho al botón Equipo, y click al botón de propiedades.
    • Click al botón de configuración avanzada del sistema.
    • Click a el botón variables de entorno.
    • En la sección de Variables de entorno agregamos una variable llamada WORKON_HOME con el valor %USERPROFILE%\entornos.
La próxima vez que abramos una consola ya podremos usar virtualenvwrapper.

Nota: Si estás en Windows debes instalar virtualenvwrapper-win y si quieres y tienes Powershell virtualenvwrapper-powershell porque el paquete virtualenvwrapper es exclusivo de sistemas *nix.

Nota: El paquete virtualenvwrapper-win tiene como ruta por defecto de los entornos la carpeta %USERPROFILE%\Envs, por tanto si quieres obviar la configuración de la variable de entorno podrías hacerlo.

Nota: En ocasiones la instalación de virtualenvwrapper-win mediante pip no establece los ejecutables necesarios en la carpeta de scripts de python, por lo cual deberá instalarse descargando el código fuente mediante Git así:
git clone git://github.com/davidmarble/virtualenvwrapper-win.git
cd virtualenvwrapper-win
python setup.py install

Nota: es probable que al usar la orden mkvirtualenv salga el mensaje:
"El sistema no puede encontrar la ruta especificada."
no te preocupes por eso, el entorno se crea de todas maneras.


Modo de empleo:
Para crear entornos nuevos usamos:
mkvirtualenv <entorno> # entorno estandar
mkvirtualenv <entorno1> --no-site-packages # entorno totalmente aislado
Para activar el entorno:
workon <entorno>
Para desactivarlo:
deactivate
Para listar los entornos existentes:
lsvirtualenv
Para eliminar un entorno (recuerde que no puede estar usándolo en el momento de eliminarlo)
rmvirtualenv <entorno>
Para copiar un entorno:
cpvirtualenv <entorno> <nombre-copia>
Para ejecutar un comando en todos los entornos:
allvirtualenv <comando>
# un ejemplo sería:
allvirtualenv pip install django
Este es un listado de comandos básicos para la gestión de entornos y en este enlace queda la documentación de los comando de virtualenvwrapper.

Espero que les sirva de ayuda.
Si te gusto el post
compartelo... :D

No hay comentarios:

Publicar un comentario