我使用nunjucks模拟python项目中的前端。必须在生产中预编译Nunjucks模板必须。我不在nunjucks模板中使用扩展或异步过滤器。我宁愿使用nunjucks-precompile命令(通过npm提供)将整个模板目录扫描到templates.js中,而不是使用grunt-task来监听对模板的更改。如何在setup.py中执行(安全)bash shell命令?
想法是在setup.py中执行nunjucks-precompile --include ["\\.tmpl$"] path/to/templates > templates.js
命令,这样我就可以简单地搭载我们的部署者脚本的常规执行。
我发现a setuptools override和a distutils scripts argument可能有正确的目的,但我不太确定哪一种是最简单的执行方法。
另一种方法是使用subprocess
直接在setup.py中执行该命令,但我已被告诫不要这(相当抢先恕我直言)。我真的不明白为什么不。
任何想法?誓?确认?
更新(04/2015): - 如果你没有nunjucks-precompile
命令可用做什么,只需使用节点包管理器安装nunjucks像这样:
$ npm install nunjucks