python - 从node.js调用python函数

标签 python node.js node-modules

我想从node.js 调用python 函数。我找到了python-shell 。但据我了解它只能运行完整的 python 脚本。

我有一些逻辑(加载一个大文件),大约需要 2 分钟。我想运行它,然后从 Node 调用 python 函数,以便文件仅加载一次。

# load a huge file takes 2min
model = xyz.load(path)

# function using that model
def doSomething(id):
    # some logic using the model
    return model.get(id)

如何重复调用 doSomething() 而无需每次都加载文件?

最佳答案

理论上,可以将 Python 解释器加载到另一个进程中,然后与其进行交互,但如果还没有相应的包,那么这并不容易。您可能已经检查过了。

如果可能的话,事先弄清楚需要在 Python 中执行的所有操作,将列表传递给脚本,并将结果作为列表返回给 Node.js。这样您只需运行脚本一次。

如果这不可能,您可以将 Python 脚本作为单独的进程启动,并让 Node.js 程序使用某种协议(protocol)与其进行通信,也许像通过 stdin/stdout 的 JSON 这样简单的协议(protocol)。然后,您的 Node.js 程序可以向 Python 程序发送命令,Python 程序可以回复结果。

关于python - 从node.js调用python函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50113986/

相关文章:

python - 使用python通过正则表达式选择文本中的每个段落

node.js - Mongodb重复键错误。如何从错误对象中获取错误字段作为对象?

javascript - "debug = require(' debug') ('api:server' )"是什么意思

node.js - 无法将 JSX 与 nodejs ESM 模块加载器一起使用

angularjs - 在 Angularjs 中使用节点模块

python - 根据没有公共(public)列的坐标合并数据框

python - 为什么 Matplotlib 颜色图的结构不同?

Python配置库

javascript - geoJson 坐标的 Mongoose 模式

javascript - Mongoose 多个数据库 TypeError : users. 模型不是函数