[Python-es] De paquetes y de huevos

Antonio Beamud Montero antonio.beamud en gmail.com
Jue Sep 29 09:33:25 EDT 2016


Como ya sabéis las distribuciones de linux empaquetan una serie de 
librerías y utilidades de python en una versión concreta. Cuando 
desarrollas algo sobre python, y necesitas alguna librería que no está 
disponible en paquete para tu distribución, normalmente tiras de huevos 
(que mal suena eso :D) y lo instalas vía pip/easy_install... Esto lleva 
a que si no tienes cuidado, esa nueva librería que instalas, puede tirar 
de dependencias y actualizar alguna de las librerías que ya tenías 
previamente instaladas vía sistema de paquetes, pudiendo provocar 
mal-funcionamientos en otras aplicaciones como efecto colateral.

Una solución a este problema es usar virtualenv, y acotar el entorno de 
aplicación.

La idea es desarrollar la app usando en la medida de lo posible las 
versiones empaquetadas de cada distribución, para en un momento dado, 
empaquetarlas directamente en paquete de la distribución.

El tema es desarrollar/probar sobre múltiples distribuciones y 
automatizar todos estos tests sin tener que irte a máquinas virtuales 
para cada distribución (incluido docker), sino algo más liviano... es 
decir, crear un virtualenv para cada distribución en la que quieras 
probar tu app, con todas esas librerias/utilidades que van 
preempaquetadas, tenerlas en la misma versión en tu virtualenv y poder 
acotar problemas, etc...

Después de todo este rollo, viene la pregunta ¿Sabéis si existe algún 
sitio donde se publiquen todos los paquetes python que instala cada 
distribución en un formato tipo al que genera pip freeze para poder 
regenerar el entorno?

Y ya puestos, si tenéis experiencia con algún entorno de tests, que pros 
y contras les veis...

Un cordial saludo.




Más información sobre la lista de distribución Python-es