模块安装
参考官方文档安装
pip install PyExecJS
配置
该模块需要JS运行时环境
以下JS runtime经过官方测试认可,建议采用
PyV8:一个调用Google V8引擎的Python模块
Node.js 本文采用该运行时
以下JS runtime也支持但未经过官方测试
Apple JavaScriptCore - Included with Mac OS X
JScript :windows自带JS解释器,IE浏览器
注:对于PyV8模块目前google上只提供了支持Python2的模块安装,尚不支持Python3,使用pip直接安装时会报错。经过各种搜索,提示需要更新pip和setuptools到最新版,依然无法解决。
对于使用JScript环境的用户,只要在IE浏览器下运行无报错的js代码也可直接运行,不需要另外安装运行时环境
代码编写
js代码执行之前需要在运行时环境下编译才能执行
由于该js环境下没有window、document对象,也没有console面板,因此在使用某些基于浏览器的原生对象在编译过程时会报错。所以在使用compile函数时尽量以函数的形式来写js代码,方便Python调用。
import execjs
name = execjs.get().name # 获取JS的运行时名称,写代码时可不写
ctx = execjs.compile("""
function add(x, y) {
return x + y;
}</