在grunt插件中打包python脚本

在grunt插件中打包python脚本,python,gruntjs,Python,Gruntjs,我正在创建一个简单的grunt插件。我希望不要强迫插件的用户预先安装python模块,因此我正在用我的插件打包模块。问题是: 在尝试将python文件作为子进程执行时,如何找到该文件的路径 执行Grunt时的当前工作目录是使用插件的程序的顶级目录,而不是插件的目录。因此,我不知道如何引用插件中的python文件。这个问题主要与查找执行节点模块的位置有关。这可以通过查找本地节点变量\uu dirname()找到。一旦您找到了那个位置,另一个重要的部分就是更改PYTHONPATH以包含您的脚本位置。

我正在创建一个简单的grunt插件。我希望不要强迫插件的用户预先安装python模块,因此我正在用我的插件打包模块。问题是:

在尝试将python文件作为子进程执行时,如何找到该文件的路径


执行Grunt时的当前工作目录是使用插件的程序的顶级目录,而不是插件的目录。因此,我不知道如何引用插件中的python文件。

这个问题主要与查找执行节点模块的位置有关。这可以通过查找本地节点变量
\uu dirname
()找到。一旦您找到了那个位置,另一个重要的部分就是更改PYTHONPATH以包含您的脚本位置。这是我需要的一段代码

var cp = require('child_process')
  , path = require('path')
  , command = 'python -c \'import mypackage; mypackage.doSomething();\''
  , execOptions = {}
  , rootDirectoryOfModule =  path.join(__dirname, "..");

process.env['PYTHONPATH'] = rootDirectoryOfModule;

var childProcess = cp.exec(command, execOptions, function callback() { ... } );