我有一个Express Node.js应用程序,但我也有一个机器学习算法在Python中使用.有没有办法可以从我的Node.js应用程序调用Python函数来利用机器学习库的强大功能?
解决方法:
我所知道的最简单的方法是使用与节点一起打包的“child_process”包.
然后你可以这样做:
const spawn = require("child_process").spawn;
const pythonProcess = spawn('python',["path/to/script.py", arg1, arg2, ...]);
然后你要做的就是确保你在python脚本中导入sys,然后你可以使用sys.argv [1]访问arg1,使用sys.argv [2]访问arg2,依此类推.
要将数据发送回节点,只需在python脚本中执行以下操作:
print(dataToSendBack)
sys.stdout.flush()
然后节点可以使用以下方式侦听数据:
pythonProcess.stdout.on('data', (data) => {
// Do something with the data returned from python script
});
由于这允许使用spawn将多个参数传递给脚本,因此您可以重构python脚本,以便其中一个参数决定调用哪个函数,另一个参数传递给该函数,等等.
希望这很清楚.如果有需要澄清,请告诉我.