python continuous-integration installation development-environment automated-deploy

Herramienta(o combinación de herramientas) para entornos reproducibles en Python



continuous-integration installation (7)

  1. virtualenv para crear un entorno virtual contenido (evitar que las diferentes versiones de paquetes de Python o Python se pisen entre sí). Cada vez hay más personas que se mueven hacia esta herramienta. El autor es el mismo que el anterior working-env.py mencionado por Aaron.

  2. pip para instalar paquetes dentro de un virtualenv. Lo tradicional es easy_install como lo responde S. Lott, pero pip funciona mejor con virtualenv. easy_install todavía tiene características que no se encuentran en pip embargo.

  3. scons como una herramienta de compilación, aunque no necesitarás esto si te quedas puramente con Python.

  4. Pasta de tela o pavimentadora para despliegue.

  5. buildbot para una integración continua.

  6. Bazaar, mercurial o git para control de versiones.

  7. Nariz como una extensión para la prueba unitaria.

  8. PyFit para pruebas FIT .

Solía ​​ser un desarrollador de Java y usamos herramientas como horm uv para gestionar nuestros entornos de desarrollo / pruebas / UAT de forma estandarizada. Esto nos permitió manejar dependencias de bibliotecas, establecer variables de SO, compilar, implementar, ejecutar pruebas unitarias y todas las tareas requeridas. Además, los scripts generados garantizaban que todos los entornos estuvieran configurados casi por igual, y todos los miembros del equipo realizaron todas las tareas de la misma manera.

Estoy empezando a trabajar en Python ahora y me gustaría su consejo sobre qué herramientas debería usar para lograr lo mismo que se describe para Java.


¿Aparte de easy_install ?

Para nuestros servidores Linux, usamos easy_install y yum.

Para nuestras computadoras portátiles de desarrollo de Windows, utilizamos easy_install y algunos MSI para algunos proyectos.

La mayoría de las bibliotecas de Python que utilizamos son de solo fuente, por lo que podemos usar la misma distribución en todos los cuadros. Si pudiéramos tener un dispositivo compartido de red, los pondríamos todos allí. Lamentablemente, nuestra infraestructura está algo dispersa, por lo que debemos mover archivos .TAR o volver a realizar las instalaciones para reconstruir los entornos.

En algunos casos (por ejemplo, PIL), tenemos que volver a compilar y verificar los números de versión.


Hago exactamente esto con una combinación de herramientas de configuración y Hudson. Sé que Hudson es una aplicación java, pero puede ejecutar cosas de Python sin problemas.


Seríamos negligentes no mencionar también Paver , que fue creado por Kevin Dangoor de la fama de TurboGears . El proyecto todavía está en alfa, pero parece muy prometedor. Un fragmento de la página del proyecto:

Paver es una herramienta de scripting basada en Python / distribución / implementación a lo largo de las líneas de Make o Rake. Lo que hace que Paver sea único es su integración con las bibliotecas de Python comúnmente utilizadas. Las tareas comunes que eran fáciles antes siguen siendo fáciles. Lo que es más importante, lidiar con las necesidades y requisitos específicos de su aplicación ahora es mucho más fácil.



Es posible que desee comprobar nuestro Devenv . Le permite estandarizar los entornos de compilación para desarrollo, QA y UAT. Es gratis como en "cerveza gratis".

HTH