Node.js child_process.spawn无法启动python进程

时间:2017-07-26 06:13:39

标签: python node.js child-process

我编写了以下代码来生成python进程。我能够启动其他进程,但不能启动python。我尝试重新安装python和节点,但仍然没有运气。我可以从命令行运行python。请帮忙。

const spawn = require("child_process").spawn;
var process = spawn('python',[ 'D:/python_script.py']);

var responseData = "";

process.stdout.setEncoding('utf-8');
process.stdout.on('data', function (data){
    responseData += data.toString();
});
process.stdout.on('end',function(data){
    console.log(JSON.stringify(responseData));
});

使用节点64位v8.2.1

我正在使用的Python脚本:

if __name__ == '__main__':
    import sys
    print("Hello")
    f = open('D:/myfile.txt', 'w')
    f.write('hi there\n')  # python will convert \n to os.linesep
    f.close()
    sys.stdout.flush()

即使只是 spawn(' python'); 也没有启动python窗口

我也试过给出python.exe的绝对路径。

1 个答案:

答案 0 :(得分:0)

变化

console.log(JSON.stringify(responseData));

console.log(responseData);

并添加

process.stderr.on('data', function (data){
    responseData += data.toString();
});

以下

process.stdout.on('data', function (data){
    responseData += data.toString();
});