Virtualenv

  
5 de Abril de 2014   0  

Imaginemos la siguiente situación:

Tenemos instalado python 2.7 en nuestra máquina e instalamos django 1.6.2 (que es la versión actual al momento de redactar este post) creamos nuestro proyecto, entregamos y todos felices.

Supongamos que empezamos otro proyecto pero para entonces la versión actual de django es la 1.7 y se nos ocurre probarlo con python 3.4 y al mismo tiempo nuestro primer cliente nos pide agregar  nuevos módulos de nuestro primer proyecto. 

¿Como podríamos alternar las versiones de python, django y librerías que usamos en nuestros proyectos sin liarnos? …

 

Para eso existe virtualenv  el cuál nos permite crear entornos virtuales y tener más de una versión de python en nuestro sistema.

Para instalarlo solo debemos hacer:

$ pip install virtualenv

Con eso ya deberá estar en nuestro sistema y ahora podremos virtualizar entornos.

Creamos una carpeta en nuestro home

virtualenv1

Entramos a la carpeta que acabamos de crear

virtualenv2

Usamos el comando virtualenv para crear un entorno virtual en este caso el entorno virtual se llamara django1.6 (puede llamarse como tú quieras será el nombre de la carpeta)

virtualenv3

virtualenv4

Como vemos nos aparece la carpeta que creamos

virtualenv5

entramos a la carpeta y notamos que contiene 3 nuevas carpetas bininclude y lib

virtualenv6

esas carpetas contienen una versión de python y también contendrán nuestras librerías de nuestros proyectos en django, ahora solo queda activarlo con  source bin/activate

virtualenv7

notaremos que aparecerá entre paréntesis el nombre de la carpeta, en este caso el entorno virtual

virtualenv8

Con eso ya estamos dentro del entorno virtual pudiendo instalar, cualquier versión de django o librería, sin tocar o modificar las de nuestro sistema.

Para salir del entorno basta con teclear

virtualenv9

 Una manera más fácil de explicar virtualenv es como si fueran contenedores herméticamente sellados independientes unos de otros lo cuál nos da la libertad de instalar lo que necesitemos sin afectar los demás entornos.

Volviendo al ejemplo de arriba la solución seria crear 2 entornos para mantener los proyectos separados pudiendo activarlos y desactivarlos cuando los necesitemos.

 



Alex Dzul

FullStack Python / Django Developer. #jslove

Temas relacionados