Virtualenv y buildout

Preview:

DESCRIPTION

Desarrollando con Python en un ambiente aislado y estable. virtualenv: es una herramienta para crear entornos Python aislados, también conocidos como sandbox. buildout: es un sistema de construcción(desarrollo) basado en Python para crear, ensamblar e implementar aplicaciones de varias piezas, algunas de las cuales pueden ser no basadas en Python.

Citation preview

Virtualenv yBuildout

Desarrollando con Python en un ambienteaislado y estable

Creada por / Alvaro J. Hernández Arteaga @ajha63

virtualenvvirtualenv: es una herramienta para crear entornos Python aislados,

también conocidos como sandbox.

buildoutbuildout: es un sistema de construcción(desarrollo) basado en Python

para crear, ensamblar e implementar aplicaciones de varias piezas,algunas de las cuales pueden ser no basadas en Python.

Buildout permite crear una configuración buildout y reproducir elmismo software más tarde.

virtualenvmanos a la obra!

instalando virtualenvpara instalar virtualenv necesitamos easy_install para verificar que

easy_install esta disponible en nuestro equipo ejecutamos el comandodesde una consola

ajha63@kingofpain~$ easy_install -h

habemus easy_installSí la ejecución del comando nos muestra la ayuda del comando

easy_install, quiere decir que la herramienta esta disponible sino,debemos primero proceder a instalarlo, para ello descargamos el

archivo distribute_setup.py desde la URL para luego ejecutar la siguiente instrucción

http://python-distribute.org/

ajha63@kingofpain~$ python distribute_setup.py

Sí la ejecución fallaajha63@kingofpain~$ sudo python distribute_setup.py

I ve got the power!

Ahora...!Ya con easy_instal en nuestro equipo podemos proceder a instalar

virtualenvMejor si es como root!

ajha63@kingofpain~$ sudo easy_install -U virtualenv

virtualenv ready!Una vez que virtualenv puede ser utilizado, podemos crear nuestro

ambiente aislado de desarrollo.

Suponinedo que estamos en nuestro /home y que ahí tenemos undirectorio src/ dónde hacemos nuestros programas.

ajha63@kingofpain~$ cd srcajha63@kingofpain~/src$ virtualenv --no-site-packages plone-dev

Nos dejará un directorio plone-dev/ que será nuestro ambiente aislado(sandbox) de desarrollo con Python

Una mirada dentro de plone-dev

Dentro del directorio plone-dev/ virtualenv creo una estructura dedirectorios e instalo toda o casi toda la base para el desarrollo con

Pythonbin/include/lib/local/

vamonos a una consola ...!

Observacion!La pareja easy_install y virtualenv por ahora no proporciona la bibliotecade desarrollo para gráficas con Python así que, sí la necesitas, se debeinstalar por separado pero, ahora en nuestro ambiente de desarrollo.

PILPython Image Library

La última version de la biblioteca PIL puede ser descargada desde: y como estamos en Linux

descargamos (por supuesto) la versión para todas las plataformashttp://pythonware.com/products/pil/

Instalar PILDespués de descargar la biblioteca PIL procedemos a descomprimir y

posteriormente a instalarlar en nuestro entorno aislado

ajha63@kingofpain~$ cd download/ajha63@kingofpain~$ tar xvzf Imaging-1.1.7.tar.gzajha63@kingofpain~$ cd Imaging-1.1.7/ajha63@kingofpain~$ ~/src/plone-dev/bin/python setup.py install

ajha63@kingofpain~$ ~/src/plone-dev/bin/python setup.py install

Escribimos la ruta completa de nuestro entorno aislado de desarrollopara instalar con el interprete Python ahí disponible, la biblioteca PIL, de

esta manera aseguramos que quede perfectamente enlazada

virtualenv....listo!

buildoutCreando con ...

Siempre hay dosUn maestro y un aprendiz

Existen dos maneras de iniciar un proyecto con buildout, la primerautilizando zc.buildout para crear nuestra propia receta; la segunda,

utilizando una de las tantas recetas buildout.http://www.buildout.org/docs/recipelist.html

zc.buildoutNos permite crear un proyecto desde cero dónde nosotros mismos

debemos crear nuestro archivo básico de configuranción buildout.cfg yposteriormente ir agregando cada uno de los elementos necesrios para

el proyecto

ajha63@kingofpain~$~/src/plone-dev/easy_install zc.buildoutajha63@kingofpain~$~/src/plone-dev/buildout init

buildout init creara lo necesario para iniciar un proyecto, incluyendo unarchivo de configuración buildout.cfg

buildout recipesSí no queremos iniciar desde cero nuestro proyecto podemos elegir una

de las miles de recetas existentes en el sitio web y asi dar fiel cumplimiento a aquello

de no reinventar la ruedawww.buildout.org/docs/recipelist

Plone recipePara este caso utilizaremos una receta de plone y luego unos archivos

de configuración de buildout para refinar la construcción.Descargamos el archivo de bootstrap de la version 4.2 de plone y lo

ubicamos en la raíz de nuestro entorno aislado, una vez ahí, creamos unarchivos de configuración buildout buildout.cfg y luego ejecutamos el

comando respectivo para iniciar el proceso de construcciónbootstrap.py

ajha63@kingofpain~$~/src/plone-dev/bin/python bootstrap.py --distribute

Preguntas...?...Yo vivo de preguntar, saber no puede ser

lujo!

Puedes leer esta presentacionen línea en

Ohttp://www.alvaro.web.ve/charlasweb/virtualenvbuildout.htmlhttp://www.alvaro.web.ve/charlasweb/VirtualenvBuildout.pdf

también enhttp://www.slideshare.net/ajha/

FinAlvaro J. Hernández Arteaga

/ http://www.alvaro.web.ve @ajha63