Python利用PyExecJS模块执行JS代码

编程 · 01-05 · 342 人浏览

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。但是,需要做好安装和配置复杂的准备。

Python JavaScript
Theme Jasmine by Kent Liao