Node.js child_process.spawn无法启动python进程 [英] Node.js child_process.spawn is unable to launch python process

查看:56
本文介绍了Node.js child_process.spawn无法启动python进程的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I have written following code to spawn a python process. I am able to launch other processes but not python. I tried reinstalling python and node but still no luck. I am able to run python from command line. Please help.

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

Using node 64 bit v8.2.1

我正在使用的Python脚本:

Python script which I am using:

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窗口

Even just spawn('python'); is not launching python window

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

I have also tried giving absolute path of python.exe.

推荐答案

更改

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();
});

这篇关于Node.js child_process.spawn无法启动python进程的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆