什么是PyMiniRacer
PyMiniRacer
是一个 Python 库,用于在 Python 环境中嵌入和执行 JavaScript 代码。它基于mini-racer
,这是一个用于在 Node.js 中执行 JavaScript 的库。PyMiniRacer
轻量且易于使用,适合大多数 JavaScript 执行需求。
安装PyMiniRacer
pip install py_mini_racer
使用PyMiniRacer
示例:执行js代码
from py_mini_racer import py_mini_racer
# 创建 MiniRacer 实例,js上下文
js_ctx = py_mini_racer.MiniRacer()
# 定义 JavaScript 函数
js_code = """
function add(x, y) {
return x + y;
}
"""
# 把js代码加到js上下文对象中。这里不要使用execute,因为execute是更希望立马有一个结果,如果没有结果就会报错
js_ctx.eval(js_code)
# 调用 JavaScript 函数
result = js_ctx.execute("add(3, 4)")
print(result) # 输出 7
示例:python对象和js交互
from py_mini_racer import py_mini_racer
# 创建 MiniRacer 实例,js上下文
js_ctx = py_mini_racer.MiniRacer()
# 将 Python 对象传递给 JavaScript
python_obj = {"name": "Tom"}
js_ctx.eval("var obj = %s;" % python_obj)
# 使用 JavaScript 访问 Python 对象
result = js_ctx.execute("obj.name")
print(result) # 输出 "Tom"
from py_mini_racer import py_mini_racer
# 创建 MiniRacer 实例,js上下文
js_ctx = py_mini_racer.MiniRacer()
# 定义和使用 JavaScript 模块
js_code = """
function greet(name) {
return "Hello, " + name;
}
"""
js_ctx.eval(js_code)
result = js_ctx.execute("greet('Tom')")
print(result) # 输出 "Hello, Tom"
如何需要和node.js交互,使用subprocess模块