A maneira mais fácil que eu conheço é usar o pacote "child_process" que é fornecido com o nó.
Então você pode fazer algo como:
const spawn = require("child_process").spawn;
const pythonProcess = spawn('python',["path/to/script.py", arg1, arg2, ...]);
Então, tudo o que você precisa fazer é ter certeza de que está import sys
no seu script python e poder acessar arg1
usando sys.argv[1]
, arg2
usando sys.argv[2]
e assim por diante.
Para enviar dados de volta ao nó, faça o seguinte no script python:
print(dataToSendBack)
sys.stdout.flush()
E o nó pode escutar dados usando:
pythonProcess.stdout.on('data', (data) => {
// Do something with the data returned from python script
});
Como isso permite que vários argumentos sejam passados para um script usando spawn, você pode reestruturar um script python para que um dos argumentos decida qual função chamar e o outro argumento seja passado para essa função etc.
Espero que isso esteja claro. Deixe-me saber se algo precisa de esclarecimentos.