简介
PyExecJS是从Ruby移植来的ExecJS
PyExecJS自动选择最佳运行环境来执行JavaScript程序
注意:几年前已停止维护,可能有小Bug
还可以使用 py_mini_racer
安装
pip install PyExecJS
初试
import execjs
print(execjs.eval("'red yellow blue'.split(' ')")) # ['red', 'yellow', 'blue']
ctx = execjs.compile("""
function add(x, y) {
return x + y;
}
""")
print(ctx.call("add", 1, 2)) # 3
运行环境
一级环境(通过测试):
二级环境(未通过测试):
- Apple JavaScriptCore - Included with Mac OS X
- Microsoft Windows Script Host (JScript)
- SlimerJS
- Mozilla SpiderMonkey
import execjs
print(execjs.get().name) # 输出当前JS运行环境
# Node.js (V8)
优缺点
优点:
- 不需要关心JavaScript环境。
- 在Windows环境下不需要安装额外库。
缺点:
- 性能差。
PyExecJS通过文本传输JavaScript运行环境,很慢。 - 不完全支持运行环境的特性。
PyV8 应该是最佳选择
替代方案
还可以使用 py_mini_racer