如何从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给该函数等。
希望这是明确的。 让我知道是否需要澄清。