一. 安装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))
执行结果如下:
//代码效果参考:http://www.intpipe.com/sitemap/post.html
//代码效果参考:http://www.ningluan.com/sitemap/post.html
//代码效果参考:https://www.yopian.com/sitemap/post.html
//代码效果参考:http://www.92demo.com/sitemap/post.html在这里插入图片描述![4b0f5623905c8a1c4bfc4146f2dd1018_ptvreo2i7i3qe_7b58363ddbbb42b58017af7ce179b30f_x-oss-process=image%2Fresize%2Cw_1400%2Fformat%2Cwebp.png](https://ucc.alicdn.com/pic/developer-ecology/kgmh2cwvierzy_e5d4e2aa23504f199dbf3294a2d52326.png)