在 Python 中执行 JavaScript 代码,有几种常见的方法和库可以使用:
-
PyExecJS: 这是一个直接在 Python 中执行 JavaScript 代码的库。它支持多个 JavaScript 运行时(如 Node.js、PhantomJS、JScript 等)。
import execjs js_code = """ function hello() { return 'Hello, World!'; } """ context = execjs.compile(js_code) result = context.call("hello") print(result)
-
PyNode: 这是一个更专门用于集成 Node.js 与 Python 的库。
import pynode js_code = """ function add(a, b) { return a + b; } """ node = pynode.Node() result = node.run(js_code, "add", 5, 3) print(result)
-
Subprocess with Node.js: 使用 Python 的
subprocess
模块,调用安装了 Node.js 的环境来执行 JavaScript 代码。import subprocess js_code = """ console.log('Hello from Node.js'); """ process = subprocess.Popen(['node', '-e', js_code], stdout=subprocess.PIPE, stderr=subprocess.PIPE) stdout, stderr = process.communicate() print(stdout.decode('utf-8'))
-
PyV8: 这是一个嵌入 V8 JavaScript 引擎的库,不过它在维护上可能不如前面提到的库活跃。
import PyV8 ctxt = PyV8.JSContext() ctxt.enter() result = ctxt.eval('1 + 2') print(result)
-
Js2Py: 这是一个纯 Python 编写的将 JavaScript 转换为 Python 的库,适用于简单的 JavaScript 代码执行。
import js2py js_code = """ function add(a, b) { return a + b; } """ result = js2py.eval_js(js_code + 'add(1, 2)') print(result)