Я использую 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 для связи с родительским процессом