python - piton - Sistemas de fabricación de pitón
piton burmes habitat (3)
Cuando utilicé waf hace aproximadamente 1,5-2 años, tenía una documentación escasa y pobre que limitaba enormemente su utilidad. Sin embargo, no he usado waf en un tiempo, así que tal vez esa situación haya cambiado.
¿Cuáles son los beneficios y problemas con los diversos sistemas de tipo Python make
like?
nota Estamos usando las denotaciones '' (+) '' y '' (-) '' respectivamente al principio de los elementos de la lista para indicar los beneficios y problemas.
Hasta ahora soy consciente de
- buildit
- antes era conocido como
pymake
- (-) parece estar obsoleto: la última versión fue a finales de 2007
- antes era conocido como
- zc.buildout
- (+) actualmente activo a partir del 2010-07-20
- usa la sintaxis similar a rc-file con
[sections]
- (-) el código de Python no puede (?) integrarse fácilmente en los archivos de configuración.
- Parece que pone mucho énfasis en trabajar con archivos
.egg
.
- scons
- (+) actualmente activo a partir del 2010-07-20
- Los archivos de configuración están escritos en Python puro.
- (+) el código de Python se puede integrar fácilmente en los archivos de configuración
- (-)? El uso de Python para los archivos de configuración puede implicar una mayor verbosidad.
- waf
- (+)? Mark dice "Beneficios como
scons
pero más rápidos" - ¿Alguna desventaja? ¿Por qué la gente sigue usando
scons
?
- (+)? Mark dice "Beneficios como
Este es el estado de 4 de los sistemas de compilación de software para Python 3, a partir de 2015-05-31.
- waf
- (+) La última versión es 1.8.10, con fecha 2015-05-24.
- (+) Soporta Python 2.5 a 3.4.
- https://waf.io/book/
- zc.buildout :
- (+) Último lanzamiento: 2.3.1, con fecha 2014-12-16
- (+) Soporta Python 2.6 a 3.4.
- https://pypi.python.org/pypi/zc.buildout
- scons :
- (-) A partir de 2014-09-27 , scons se ha estancado en su puerto a Python 3, debido a que scons es un esfuerzo dirigido por voluntarios.
- http://www.scons.org/RELEASE.txt
- buildit
- (-) No es compatible con Python 3.
- (-) a partir del 2013-11-17, la versión 0.81 es la última.
- Estado de desarrollo :: 3 - Alpha
- https://pypi.python.org/pypi/buildit/
Una peculiaridad de waf es que se debe copiar en el árbol de origen del programa. Scons es mucho más parecido a make, ya que se instala una vez en el sistema, y básicamente tiene un archivo de datos (en forma de programa python) en el árbol de origen.
Como consecuencia, Scons está empaquetado en Ubuntu / Debian y waf no lo está.
Es posible, pero un poco difícil en Scons hacer una metaprogramación que manipule el gráfico de dependencia o agregue nuevos conceptos para la derivación. Al parecer, waf es mejor en eso.
He usado Scons felizmente muchas veces; para mi próximo proyecto compilado probablemente al menos intente waf.
Puedes leer acerca de la experiencia de Samba con waf . Informan que al pasar de autoconf a Waf se configuraron correctamente las rutas y se redujeron los binarios al vincular los archivos de objetos necesarios exactamente una vez por programa.