一.PyExecJS库
安装方式:
pip install PyExecJS==1.0.2
PyPi地址:
https://pypi.org/project/PyExecJS/1.0.2/
调用Demo:
import execjs
jscode = """
function add(a,b)
{
return a + b;
}
"""
ctx = execjs.compile(jscode)
value = ctx.call("add",1,2)
print (value)
方法很简单,这里的call函数,第一个实参是函数名,第二三个为函数的调用参数,从左到右依次对应。
它还有一个eval函数,具体调用方法可以参考上面的PyPi。
二.node_vm2库
安装方式:
pip install node_vm2
PyPi地址:
https://pypi.org/project/node-vm2/
API参考:
https://pypi.org/project/node-vm2/
代码demo:
from node_vm2 import VM
with VM() as vm:
vm.run("""
var sum = 0, i;
for (i = 0; i < 10; i++) sum += i;
""")
print(vm.run("sum"))
这个库在我电脑的环境下,调用demo出错,大佬们说很好用,可能是我电脑环境的问题。
尝试修改,又有另外的问题,暂时作罢。
三.py-mini-race库
安装方式:
pip install py-mini-racer
PyPi地址:
https://pypi.org/project/py-mini-racer/
调用Demo:
from py_mini_racer import MiniRacer
ctx = MiniRacer()
value = ctx.eval("1+1")
print (value)
更多的调用方式请参考其Pypi文档。
四.系统命令方式
-
如果不需要返回结果:
-
os.system("node xxx.js")
需要返回结果:
value = os.popen("node xxx.js").read()