如何从javascript(nodejs)程序调用python,而不创建子进程
Posted
技术标签:
【中文标题】如何从javascript(nodejs)程序调用python,而不创建子进程【英文标题】:How to call python from javascript (nodejs) program, without creating child process 【发布时间】:2019-06-20 09:18:15 【问题描述】:我在 nodejs 上运行硬件,并且我在 python3 中编写了机器学习代码。 我想从nodejs(javascript)调用python3程序并将数据作为参数传递给python程序。
我发现了一些方法,例如使用 spawn、python-shell 等,它们通过创建子进程来调用 python。
但我想从父进程本身调用 python,而不创建子进程。 意味着,只有进程,即父 nodejs 进程应该运行。
test.py
def someFunction():
#some code here
#print the arguments received.
someFunction ()
test.js
call test.py from this test.js and need to pass arguments to python program as well.
call test.py with arguments as ('xyz', 'abc')
我期望输出: xyz abc
在不创建和启动子进程的情况下找不到任何调用方式。
【问题讨论】:
Python 是 interpreted language,我认为没有办法在不启动解释器进程的情况下运行未编译的纯 Python 代码。 【参考方案1】:你不能。您正在生成一个外部程序,它需要一个自己的进程。
好吧,这并不完全正确。您可以用 JavaScript 编写一个完整的 Python 解释器或虚拟机(您可以在其中运行操作系统,然后在其中运行 Python),然后您可以完全在 Node.js 进程中运行它……但是这将是一项巨大的工作。
【讨论】:
以上是关于如何从javascript(nodejs)程序调用python,而不创建子进程的主要内容,如果未能解决你的问题,请参考以下文章
NodeJS中的Websockets。从服务器端WebSocket客户端调用WebSocketServer
从 NodeJS(在机器#2 中)调用 Python 脚本(在机器#1 中)