用节点subprocess产生python ENOENT错误

我正在尝试在节点脚本中将python脚本作为subprocess调用。 脚本的输出将在callback中使用。 代码如下所示:

//myFunction.js const myFunction = callback => { let py = process.spawn('python', ['../folder/pyscript.py'], { cwd: '../folder/' }); let str = ''; py.stdout.on('data', data => { str += data.toString(); } py.stdout.on('end', () => { callback(str); } } exports.myFunction = myFunction; 

当我直接运行节点myFunction.js(在脚本中使用myFunction的一个实例)时,此代码按预期方式工作,并且当我需要在与myFunction.js相同的目录中的任何其他文件中的模块时,它的工作正常。

但是,如果模块在不同的更高级目录中需要,则会失败,并显示以下错误:

 error: spawn python ENOENT 

我猜这与path有关(可能是cwd的值),但我似乎无法解决这个问题。 我查了类似的问题,但答案没有帮助。

任何帮助将不胜感激。 🙂