目前发现PyV8、PyExecJS比较靠谱,MacOS 安装PyV8的话用https://github.com/emmetio/pyv8-binaries,pip安装有问题。
js2py虽然很方便,但是有时候代码会报错。
PyV8例子
import PyV8
ctxt = PyV8.JSContext()
ctxt.enter()
test=ctxt.eval("""
(function(p){
function abc(t) {
return "hello,"+t;
}
return abc(p);
})
""")
if __name__ == "__main__":
print(test('world'))
输出
hello,world
但是传python字典给js的函数,似乎没有用。不过可以json.dumps(dict) 传给js函数,js函数再JSON.parse(json_str)。
pyv8自带的这种方法很奇怪,有的函数运行会得到和真正js不一样的结果,但是PyExecJS走PyV8就没有这种问题,真是奇怪。