PyExecJS
使Python能够运行JS代码,底层实现方式是:在本地JS环境下运行JS代码。
安装PyExecJS模块:pip install PyExecJS
可以选择用Node.js作为JS运行环境,Node.js官网:https://nodejs.org/
验证JS引擎:
import execjs
print(execjs.get().name) # Node.js (V8)
简单使用
test.js文件:
function func(age) {
return age + 1
}
run.py文件:
import execjs
with open("test.js", encoding="utf-8") as f:
js_file = f.read()
# 编译JS代码,返回上下文对象ctx
ctx = execjs.compile(js_file)
# call方法,第一个参数是函数名,后面接参数
r = ctx.call("func", 18)
print(r) # 19
execjs.eval可以直接运行JS代码并得到结果:
import execjs
js = "'2024-01-01'.split('-')"
r = execjs.eval(js)
print(r) # ['2024', '01', '01']
PyV8
也可以使用PyV8库在Python中运行JavaScript代码,PyV8提供了对V8 JavaScript引擎的访问。V8 JavaScript引擎是Google开发的JavaScript引擎,也是Chrome浏览器的JavaScript引擎。
对于大多数用户来说,PyExecJS是一个更好的选择。它安装和配置简单,文档和示例丰富,支持多种JavaScript引擎。虽然它的速度和性能不如PyV8,但对于大多数应用来说已经足够了。
如果需要运行速度快、性能好的JavaScript代码,并且需要使用最新的JavaScript语法和特性,那么可以使用PyV8。但是,需要做好安装和配置复杂的准备。