lunes, 5 de marzo de 2012

Instalando lista de requerimientos con Virtualenv y pip

Debo admitirlo, para un proyecto necesitamos tantas cosas y tan variadas, que aveces es como complicado, pero mas complicado lo es si tratan de instalar algo que le servira bien a un proyecto y a otro simplemente no le servira. Trabajando con Python me he dado cuenta que esto no es necesariamente un problema, debido a su estructura puedo separar todos mis requerimientos sin sufrir por lo que les pasara.

Para esto utilizo la herramienta virtualenv, el cual me permite crear entornos separados para cada proyecto, es decir, es como si tuviera cada proyecto en una maquina diferente, pero dentro de mi propia maquina. Y luego puedo utilizar pip para instalarlos recursivamente.

Procedamos a instalar virtual env

  1. Lo primero que tenemos que hacer, es como siempre entrar como super usuario su e ingresar la contraseña.
  2. Ahora procederemos a instalar el virtual env, por lo general lo instalamos con pip o con easy install, con pip es pip install virtualenv con easy install seria easy_install virtualenv en estas altura del partido ya tenemos que tener instalado el pip, si no lo tienen no habra ninguna complicacion, en el anterior post esta la forma de hacerlo.
Listo! ya tenemos instalado virtual env y ahora? bueno, vamos a utilizarlo, creemos un espacio virtual para nuestros proyectos.
  1. nos situamos en la carpeta donde tenemos nuestro proyecto por medio del comando cd
  2. (opcional) En lo personal, creare una carpeta para trabajar mi primer entorno virtual, por tanto escribire en la consola: mkdir venv.
  3. Ahora accedere a ella, pero primero configurare el sistema para que sepa que es un virtualenv: virtualenv --no-site-packages --distribute venv

    Aqui les aclaro: -- (doble guion) no-site-packages es para que el sistema comprenda que no utilizaremos la configuracion global del sistema porque esto sera un ambiente virtual. --Distribute: esto instala lo que necesitamos basicamente para poder trabajar un ambiente virtual.

  4. Ahora ingresamos en la carpeta del virtual env cd virtualenv
  5. Ahora activamos el ambiente virtual, funciona igual, es decir, es el mismo codigo para todos, independientemente de como se llame su ambiente virtual, el codigo es igual: source bin/activate
  6. Ahora vemos que antes de nuestra ruta convencional, aparece entre parentesis el nombre de nuestro venv. De esta manera el sistema nos indica cual venv tenemos activo
Y listo chicos, ya tenemos instalado y corriendo el venv, pero ahora toca que ademas instalemos lo que necesitamos, por lo general la lista es larga y precisa, por lo tanto si colocamos en un archivo con extension .txt nos resultara mas facil. La pregunta del millon sera, ¿que debe llevar dentro nuestro txt? Cierto que si? Bueno dentro del txt debemos escribir algo asi. Requerimientos, queremos instalar django en su version 1.2.3 (es un ejemplo), mysql-python 1.2.3, pil en su version 1.2.3, entonces el txt tendra esos requerimientos separados solo por un salto de carro, asi: django==1.2.3
mysql-python==1.2.3
pil==1.2.3 Las versiones son independientes, siempre se escribe el nombre del modulo, seguido por un doble igual y el numero de la version, se hace salto de carro y se sigue asi hasta terminar todos los modulos requeridos, es preferible que guarden ese txt dentro del directorio que posee su virtualven, y ahora veran algo interesante.... Nos quedamos en que habiamos activado nuestro venv, dentro de esa carpeta solo esta el archivo de requerimientos (recuerden el .txt, en mi caso se llama requirements.txt) y los directorios que coloco el distribute cuando lo instale que son el de include, lib y bin). Ahora instalemos los requerimientos.
  1. En la carpeta invocamos a pip para instalar recursivamente: pip install -r requirements.txt

Listo lo dejamos trabajar que el se encarga de instalarlo todo, una cosa, si, el -r va despues del install no lo cambien de sitio o no servira!

Listo chicos! ya hemos terminado!!! Exitos y disfruten su ambiente virtual!

0 comentarios:

Publicar un comentario