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

标签 python node.js child-process

我编写了以下代码来生成 python 进程。我能够启动其他进程但不能启动 python。我尝试重新安装 python 和 Node ,但仍然没有运气。我能够从命令行运行 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));
});

使用 Node 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 的绝对路径。

最佳答案

改变

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

关于python - Node.js child_process.spawn 无法启动 python 进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45318802/

相关文章:

python - 从生成器对象中提取数据

Node.js 新日期不反射(reflect) .env 中的时区 TZ var

node.js - 在 Angular 2 typescript 中包含 lib 时找不到模块 "shelljs"

node.js - Node : child_process. exec() 进程在父进程死亡后继续

python字典结构,速度问题

python 将列表写入文件

python - 在正交投影中用 cartopy 绘制圆圈

javascript - 使用 Angular 和 NodeJs (CORS) 进行跨域请求

node.js - 将 Bower 包安装到 Laravel 5.4 应用程序

node.js - Node : Send Ctrl+C to a child process on Windows