¿Existe un equivalente de Rake en Python?

87

Rake es una herramienta de creación de software escrita en Ruby (como Ant o Make ), por lo que todos sus archivos están escritos en este lenguaje. ¿Existe algo como esto en Python?

e-satis
fuente
3
¿Está buscando una herramienta de construcción y resolución de dependencia general, como make, que pueda construir proyectos desde cualquier idioma? ¿O algo para construir paquetes de Python específicamente?
Ian Clelland
1
Algo general. La compilación del paquete Python es interesante, pero se puede realizar con herramientas generales.
e-satis
1
ver también farmdev.com/ Thoughts
locojay
4
¿Alguien vino aquí desde el tobogán Joe Armstrong? youtu.be/lKXe3HUG2l4?t=1270
sobrino

Respuestas:

28

Paver tiene un conjunto similar de objetivos, aunque realmente no sé cómo se compara.

Ned Batchelder
fuente
Eso parece definitivamente lo más cercano.
e-satis
1
Eso parece haber perdido impulso en 2011
John Mee
2
El proyecto aún está activo, el registro de cambios ahora está aquí: pythonhosted.org/Paver/changelog.html
Stefan Schmidt
1
La última versión en pythonhosted.org/Paver/changelog.html es1.1.0 (July 30, 2012)
clacke
¿Alguna opinión sobre Invoke (mencionado en otras respuestas en esta P), vs Paver? ¿Son "competidores" directos? ¿Pros contras?
inger hace
38

Invocar : tejido sin las dependencias SSH.

La hoja de ruta de Fabric analiza que Fabric 1.x se dividirá en tres partes:

  1. Invoke : la ejecución de la tarea no SSH.
  2. Fabric 2.x: la biblioteca de implementación y ejecución remota que utiliza Invoke .
  3. Patchwork : las "operaciones comunes de implementación / administrador de sistemas, creadas en Fabric".

Invoke es una herramienta y biblioteca de ejecución de tareas de Python (2.6+ y 3.3+), que se inspira en varias fuentes para llegar a un conjunto de funciones potente y limpio.

A continuación, se muestran algunas declaraciones descriptivas del sitio web de Invoke :

  • Invoke es una herramienta y biblioteca de ejecución de tareas de Python (2.6+ y 3.3+), que se inspira en varias fuentes para llegar a un conjunto de funciones potente y limpio.
  • Al igual que la herramienta Rake de Ruby y el propio predecesor de Invoke, Fabric 1.x, proporciona una API limpia y de alto nivel para ejecutar comandos de shell y definir / organizar funciones de tareas desde un archivo tasks.py.
Matthew Rankin
fuente
1
@IgorZevaka ahora funciona en Windows, el mismo tema - github.com/pyinvoke/invoke/pull/119
Roman M. Koss
1
Fue usuario de Shovel hace unos 4 años. Definitivamente vaya con Invoke ahora. Interfaz de línea de comandos muy buena, la declaración de tareas es agradable y fácil, el encadenamiento se siente como el de Make. Agradable.
ddotsenko
¿Alguna opinión sobre Paver (mencionado en otras respuestas sobre esta P), vs Invoke? ¿Son "competidores" directos? ¿Pros contras?
inger hace
6

Waf es un marco basado en Python para configurar, compilar e instalar aplicaciones. Deriva de los conceptos de otras herramientas de construcción como Scons, Autotools, CMake o Ant.

las3rjock
fuente
1
¿Cuáles son los beneficios de otros scons de Waf?
e-satis
5

Aunque se usa más comúnmente para la implementación, Fabric podría ser interesante para este caso de uso.

charlax
fuente
4

También hay doit : lo encontré mientras buscaba estas cosas hace un tiempo, aunque no llegué muy lejos al evaluarlo.

Hamish Downer
fuente
0

Consulte también buildout, que no es tanto un sistema de creación para software, como un sistema de creación para una implementación.

http://pypi.python.org/pypi/pysqlite/2.5.5

Por lo tanto, no es un equivalente de rake directo, pero puede ser una mejor combinación para lo que quieres hacer, o uno realmente pésimo.

Lennart Regebro
fuente
1
Usar buildout para eso es como usar un tanque para ir al centro comercial, ¿no es así? Usar cualquier herramienta de Zope / Plone fuera de Zope / Plone generalmente es, de todos modos :-p
e-satis
"Para eso"? No especificó para qué quería usarlo. De todos modos, buildout no es una herramienta Zope / Plone. Tampoco es grande ni complejo. Es realmente agotador que algunas personas descarten la herramienta solo porque está escrita o utilizada por desarrolladores de Zope. Esa actitud es bastante tonta.
Lennart Regebro
Vamos, eso fue solo una broma. Solía ​​trabajar para una empresa exclusiva de Plone y sí, solíamos hacer muchas bromas sobre las herramientas que estábamos usando. Esa es una actitud cuerda, ¿no crees?
e-satis
0

Hay Phantom en Boo (que no es Python, pero casi).

Wernight
fuente
-2

Yo chequearía distutils:

El distutilspaquete proporciona soporte para construir e instalar módulos adicionales en una instalación de Python. Los nuevos módulos pueden ser Python 100% puro, o pueden ser módulos de extensión escritos en C, o pueden ser colecciones de paquetes de Python que incluyen módulos codificados tanto en Python como en C.

Andrew Hare
fuente
¿Admite cosas como la generación de documentación o la ejecución de pruebas unitarias?
Wernight