一. 安装node.js环境
安装NodeJS
下载: http://nodejs.cn/download/
安装: https://www.runoob.com/nodejs/nodejs-install-setup.html
测试安装成功可在控制台输入:node --version
二. 安装PyExecJS
源:https://pypi.org/project/PyExecJS/
安装:pip install PyExecJS
查看执行JS的环境:
import execjs
# 返回:JScript,是windows 默认执行JS的环境
# 返回:Node.js (V8),是NodeJS环境
print(execjs.get().name)
三. 案例
2.1 一个简短的案例:
import execjs
print(execjs.eval("'red yellow blue'.split(' ')"))
ctx = execjs.compile("""
function add(x, y) {
return x + y;
}
""")
print(ctx.call("add", 1, 2))
2.2 可以通过 get() 函数选择特定的JavaScript运行时
import execjs
default = execjs.get() # the automatically picked runtime
print(default.eval("1 + 2"))
# jscript = execjs.get("JScript")
# print(default.eval("1 + 2"))
node = execjs.get("Node")
print(node.eval("1 + 2"))
2.3 先编译、后调用
import execjs
# 直接执行
print('execjs.eval:', execjs.eval(' "a、b、c、d、e".split("、") '))
# 先编译、后调用
# 将js文件中的内容读取出来编译即可调用里面的方法了
js_compile = execjs.compile(
"""
function add(x, y) {
return x + y;
}
"""
)
eval_str = "js_compile.call('add', '{}', '{}')".format('abc', 123)
print('eval执行的语句:', eval_str)
print('eval:', eval(eval_str))
print('execjs.compile().call():', js_compile.call('add', 'abc', 123))
执行结果如下: