Maven equivalente para python [cerrado]


Soy un desarrollador java/principiante de python, y me faltan mis características de maven, particularmente la administración de dependencias y la automatización de compilación (quiero decir, no compila, pero ¿cómo crear un paquete para la implementación?)

¿Existe un equivalente en python para lograr estas características?
Nota: Yo uso python 2.x

Gracias.

Author: Enno Shioji, 2010-07-24

5 answers

Python utiliza distutils y setuptools para la dependencia y el empaquetado.

Aquí hay un tutorial que explica lo básico: http://docs.activestate.com/activepython/3.2/diveintopython3/html/packaging.html

En resumen, usted tendrá setup.py archivo, que tiene información de dependencia y compilación/instalación de scripts,y puede construir huevos, dist tarballs, tarballs binarios, etc.

 57
Author: Daniel Kluev,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-02-09 14:15:42

No hay coincidencia directa. Sin embargo, lo más cercano que puede obtener:

  • zc.buildout: Puede configurar entornos cerrados, descargar/manejar dependencias, inicializar scripts, etc. También se basa en plugins (o" recetas", como los llaman). Lo utilicé hace unos años cuando estaba en fase beta, probablemente ha evolucionado desde entonces. Hay curva de aprendizaje, como con Maven, pero también es la más poderosa.

Otras ofertas son subconjuntos de Maven / zc.buildout:

Probablemente conozca Ant y shell scripting, por lo que también podría comprobar estas herramientas de Python:

  • Fabrico Pavimentadora: corredores de tareas de línea de comandos con sabores añadidos. Ellos envuelven su ejecución tradicional de línea de comandos en python, y permite gestionar varias tareas de una manera más potente (dependencias de tareas, interpretación de salida, ejecución de comandos en servidor remoto, etc.). Básicamente nada que no puedas hacer con el script de shell, pero en Python, es mucho menos críptico.
 32
Author: Tuukka Mustonen,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-08 10:21:00

Me gustaría señalar PyBuilder que está fuertemente inspirado en maven, pero utiliza python en lugar de XML para la configuración, por lo que en realidad es legible, en mi humilde opinión.

Hay un complemento para la administración de dependencias (usa pip bajo el capó y diferencia entre las dependencias de compilación y en tiempo de ejecución) y, al igual que maven, puede ejecutar todo el ciclo de vida de compilación con un solo comando.

 12
Author: user245678,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-05-01 17:04:54

Para la implementación, además de distutils/setuptoos, también eche un vistazo al paquete pip (usa setuptools debajo). Puede revertir instalaciones fallidas y también desinstalar (algo que falta en easy_install / setuptools). Además, puede especificar dependencias a través de un archivo de texto de requisitos.

 8
Author: ars,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-07-24 07:01:19

Es bueno usar virtualenv para crear un entorno de proyecto independiente y usar pip/easy_install para las dependencias de administración.

 5
Author: Ning Sun,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-12-30 06:37:22