如何从NodeJS调用Python函数

我有一个Express NodeJS应用程序,但是我也有一个在Python中使用的MachineLearningalgorithm。 有什么办法可以从我的NodeJS应用程序调用Python函数来利用MachineLearning库的function?

我所知道的最简单的方法是使用与节点打包在一起的“child_process”包。

然后你可以做一些事情:

 var spawn = require("child_process").spawn; var process = spawn('python',["path/to/script.py", arg1, arg2, ...]); 

然后你所要做的就是确保你在python脚本中import sys ,然后你可以使用sys.argv[1]来访问arg1 ,使用sys.argv[2]来访问arg2 ,等等。

要将数据发送回节点,只需在python脚本中执行以下操作:

 print(dataToSendBack) sys.stdout.flush() 

然后节点可以使用以下方式监听数据:

 process.stdout.on('data', function (data){ // Do something with the data returned from python script }); 

由于这允许使用spawn将多个parameter passing给脚本,因此可以重构python脚本,以便其中一个参数决定调用哪个函数,另一个parameter passing给该函数等。

希望这是明确的。 让我知道是否需要澄清。