2017-07-26 68 views
1

我写了下面的代码来产生一个python进程。我能够启动其他进程,但不是python。我尝试重新安装Python和节点,但仍然没有运气。我能够从命令行运行python。请帮忙。Node.js child_process.spawn无法启动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() 

即使只是菌种( '蟒');未启动python窗口

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

+0

你得到任何错误? –

+0

没有错误。只是没有发生。 –

+0

你可以发布python脚本吗? –

回答

0

变化

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

​​

,并添加

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

下面

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