gpt4 book ai didi

javascript - NodeJS 和 Python-Shell .run 函数不打印 STDOUT

转载 作者:行者123 更新时间:2023-11-30 20:50:37 26 4
gpt4 key购买 nike

我正在使用 NodeJS 和 Python 脚本。

我需要从我的 python 脚本中获取结果,为此,我使用 Python-Shell。请参阅此链接中的文档:

github.com/extrabacon/python-shell

我可以使用 pythonShell.on 和 pythonShell.end 获取打印件。

问题是我不能用这个方法发送参数

然后我使用pythonShell.run!

我可以发送 args 但它不返回打印,而它应该......

你能帮我拿打印件吗?

你可以在下面看到我的简短代码,这是一个简单的代码,只是为了让它工作。

var pythonShell = require('python-shell');

app.post('/index/generator/',urlencodedParser, function (req,res){
var options = {
mode: 'JSON',
pythonOptions: ['-u'],
scriptPath: './generator',
args: ['hello','bye']
};

pythonShell.run('generator.py', options, function (err, results) {
if (err) throw err;
console.log("Message %j ",results);
});
})

这里是 python 代码:

#!/usr/bin/python
# -*- coding: utf-8 -*-
import sys

print(sys.argv[1]+' '+sys.argv[2])

最佳答案

你可以使用child_process,

  1. 使python文件可执行


    chmod +x 生成器.py

  2. 生成子进程

```

const { spawn } = require('child_process');
const ls = spawn('./generator.py', ['hello', 'world']);

ls.stdout.on('data', (data) => {
console.log(`stdout: ${data}`);
});

ls.stderr.on('data', (data) => {
console.log(`stderr: ${data}`);
});

```

然后使用process.send与父进程通信

关于javascript - NodeJS 和 Python-Shell .run 函数不打印 STDOUT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48224530/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com