Skip to content

Python 与 JavaScript 混合编程

PythonMonkey

PythonMonkey 是一个 Python 与 JavaScript 混合编程的工具,它可以让你在 Python 中调用 JavaScript 函数,实现 Python 与 JavaScript 的混合编程。

安装:

bash
pip install pythonmonkey

使用:

python
import pythonmonkey as pm

hello = pm.eval("() => { return 'Hello from Spidermonkey!' }")
hello()
# 'Hello from Spidermonkey!'

示例代码

本文未提供完整项目示例,请参考 PythonMonkey-examples 项目,其中包含了 PythonMonkey 的完整示例代码。

异步支持

python
import asyncio

async def async_fn():
  await pm.eval("""
    new Promise((resolve) => setTimeout((...args) => {
        console.log(args);
        resolve();
      }, 1000, 42, "abc")
    )
  """)
  await pm.eval("async (x) => await x")(asyncio.sleep(0.5))

asyncio.run(async_fn())

命令行工具

test.js 中使用 Python 库:

python
# date-lib.py
from datetime import date # You can use Python libraries.
exports['today'] = date.today()

可在 test.js 中调用 require('./date-lib')

js
// test.js
const dateLib = require('./date-lib')
console.log(dateLib.today)

执行测试:

bash
pmjs test.js