¿Cómo ejecutar un comando bash shell (seguro) dentro de setup.py?

Uso nunjucks para crear plantillas para la interfaz en un proyecto de Python. Plantillas Nunjucksdebe precompilarse en producción. No uso extensiones o filtros asincrónicos en las plantillas de nunjucks. En lugar de usar grunt-task para escuchar los cambios en mis plantillas, prefiero usar el comando nunjucks-precompile (ofrecido a través de npm) para barrer todo el directorio de plantillas en templates.js.

La idea es tener elnunjucks-precompile --include ["\\.tmpl$"] path/to/templates > templates.js El comando se ejecuta dentro de setup.py, así que simplemente puedo aprovechar la ejecución regular de nuestros scripts de despliegue.

encontréuna anulación de herramientas de configuración yun argumento de scripts de distutils podría servir para el propósito correcto, pero no estoy seguro de que sea el enfoque más simple para la ejecución.

Otro enfoque es usarsubprocess ejecutar el comando directamente dentro de setup.py, pero he sido advertido contra esto (más bien preventivamente en mi humilde opinión). Realmente no entiendo profundamente por qué no.

¿Algunas ideas? Afirmaciones? Confirmaciones?

Actualización (04/2015): - Si no tienes elnunjucks-precompile comando disponible, simplemente use Node Package Manager para instalar nunjucks de esta manera:

$ npm install nunjucks

Respuestas a la pregunta(2)

Su respuesta a la pregunta