我正在创建一个简单的包装python模块插件。我希望不要强迫插件的用户预先安装python模块,所以我用我的插件打包模块。问题是:
如何在尝试将其作为子进程执行时查找到python文件的路径?
执行Grunt时的当前工作目录是使用插件的程序的顶层目录,而不是插件的目录。因此,我不知道如何引用插件中的python文件。
发布于 2014-02-24 13:19:16
这个问题主要涉及到查找执行节点模块的位置。这是通过查找本地节点变量__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() { ... } );https://stackoverflow.com/questions/21981774
复制相似问题