[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