2010-07-20 27 views
16

¿Cuáles son los beneficios y problemas con los diversos sistemas similares a Python make?Python make systems

nota Estamos usando las denotaciones '(+)' y '(-)', respectivamente, al comienzo de los elementos de lista para indicar los beneficios y problemas.

Hasta ahora yo sepa

  • buildit
    • era conocido previamente como pymake
    • (-) parece estar obsolescencia: último lanzamiento fue a finales de 2007
  • zc.buildout
    • (+) actualmente activos en 2010-07-20
    • utiliza sintaxis rc-archivo-como con [sections]
    • (-) (?) Código de pitón no puede ser fácilmente integrado en los archivos de configuración .
    • parece poner mucho énfasis en trabajar con archivos .egg.
  • scons
    • (+) actualmente activos en 2010-07-20
    • archivos de configuración están escritos en Python puro
    • (+) código Python puede fácilmente ser integrado en archivos de configuración
    • (-)? uso de Python para ficheros de configuración puede implicar la verbosidad adicional
  • waf
    • (+)?Mark dice "Beneficios como scons pero más rápido"
    • ¿Alguna desventaja? ¿Por qué la gente sigue usando scons?
+0

"verbosidad extra"? Seguro que parece más claro y más preciso que cualquier alternativa. ¿Cuál es el punto de esta pregunta? –

+0

tal vez como un repositorio de información sobre las herramientas 'make' de python (al menos esa es mi presunción considerando el estado de CW) –

+0

Acabo de investigar un poco las opciones que existen, y se me ocurrió esta lista. Me pregunto a) si hay más opciones yb) si hay otros aspectos notables a las opciones aquí enumeradas. – intuited

Respuesta

0

Cuando solía WAF hace aproximadamente 1,5-2 años, que tenían documentación muy escasa y pobre, que limita en gran medida su utilidad. No he usado waf en un tiempo, sin embargo, tal vez esa situación ha cambiado.

+0

Ahora hay un "libro" en waf en [https://waf.io/book/] con muchos ejemplos. – Chelmite

3

Una peculiaridad de waf es que se supone que debe copiarse en el árbol fuente del programa. Scons es mucho más parecido a make, ya que está instalado una vez en el sistema, y ​​básicamente tienes solo un archivo de datos (en forma de un programa python) en el árbol de fuentes.

Como consecuencia, Scons está empaquetado en Ubuntu/Debian y waf no.

Es posible, pero un poco difícil en Scons hacer metaprogramación que manipule el gráfico de dependencia o agregue nuevos conceptos para la derivación. Aparentemente waf es mejor en eso.

He usado Scons felizmente muchas veces; para mi próximo proyecto compilado, probablemente al menos probaré waf.

Puede leer acerca de Samba's experience with waf. Informan que al pasar de autoconf a Waf los rpaths se configuraron correctamente y se redujeron los binarios al vincular los archivos de objeto necesarios exactamente una vez por programa.

1

Aquí está el estado de 4 de los sistemas de compilación de software para Python 3, desde 2015-05-31.