1

Virtualenv en proyectos python

Virtuanenv o Virtual Environment es una herramienta muy poderosa al momento de desarrollar cualquier proyecto con python, pues este hace la función (como su nombre lo indica en ingles) de un entorno virtual en el que podemos trabajar; ¿pero que significa esto? Lo que sucede es lo siguiente, en python cuando nosotros instalamos algún paquete o framework por el medio que sea, pip, easy_install o directamente del instalador, esta en realidad solo se copia a una carpeta dentro de los archivos donde python esta instalado, y la jerarquía con la que python resuelve un paquete es primero buscarlo localmente dentro del directorio sobre el que se esta trabajando, y si no lo encuentra aquí, lo buscara en el directorio específico donde se instalo.

Hasta este punto todo esta bien aparentemente, el problema surge al momento de necesitar dos versiones diferentes del mismo paquete  para diferentes proyectos; digamos por ejemplo dos versiones diferentes de Django para dos sitios web, esto se complicaría un poco por la manera en la que mencionamos que esta diseñada la forma resolver paquetes de python, y aquí es donde entra Virtualenv, pues con esta herramienta podemos crear una instalación local de python dentro del directorio del proyecto en el que trabajamos. La función de virtualenv es mantener todas las versiones de las dependencias de un proyecto aisladas de otros proyectos, esto se le conoce en computación como sandbox, un espacio privado donde nuestro programa puede correr sin afectar a otros programas similares.

Para comenzar a trabajar con virtualenv, primero tenemos que tener este instalado en nuestra versión global de python, así que usando pip lo instalamos (en lo personal recomiendo usar siempre pip):

sudo pip install virtualenv

Ahora dentro del directorio de nuestro proyecto corremos el siguiente comando:

virtualenv  --distribute .venv

El ultimo parámetro que usamos en esta línea fue .venv, este en realidad es un nombre opcional, es el nombre que tendrá la carpeta dentro de nuestro directorio en la cual se instalara el entorno virtual de python, yo recomiendo usar este nombre ya que el punto al principio la mantendrá oculta tanto en MacOS como en Linux (este ejemplo no es para Windows) y el nombre venv ya es un estándar que se maneja para nombrar a esta carpeta, pero como mencioné, el nombre es opcional.

Una vez creado esto, tenemos una instalación local de python muy reducida, donde no tiene instalada ningún paquete de terceros, a excepción de pip; pero python aun no esta trabajando desde aquí, para hacerlo corremos el siguiente comando en la terminal estando en el directorio del proyecto.

source .venv/bin/activate

Ahora si, ya estamos trabajando con la versión virtual de python que instalamos, comprobemos que no tenemos paquetes en esta versión, entra al shell de python e intenta hacer un import a algún paquete que instalaste anteriormente, como Django por ejemplo

import django

Notarás que te marca que el paquete no a sido encontrado, así que a partir de aquí, solo queda instalar las dependencias necesarias usando pip.

Recuerda que siempre que quieras trabajar en tu proyecto, deberás iniciar antes el entorno virtual en tu consola con el comando source, para salirte de este entorno en el momento que quieras, solo ejecuta el comando deactivate, esto te devolverá a la configuración global de tu consola.

Esto fue una breve introducción al tema de Virtualenv, si te interesa saber mas puedes indagar un poco por internet buscando información referente, y también puedes leer un poco la documentación del proyecto en el siguiente enlace.

http://www.virtualenv.org/

 

Jesus Anaya - Programador de python y django con un gusto obsesivo por las series de television.

Comentarios

  1. avatar
    Alfredo dijo

    Nice introduction to virtualenv dude !

Pública un comentario