我正在使用NodeJS和Python脚本。

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

github.com/extrabacon/python-shell


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

问题是我无法使用此方法发送args

然后我使用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,


使python文件可执行

chmod +x generator.py
产生子进程


```

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与父进程进行通信

08-07 13:12