Pyodide 是基于 WebAssembly、面向浏览器和 Node.js 的 Python 发行版。Pyodide 由编译成 WebAssembly/Emscripten 的 CPython 解释器组成,允许 Python 在网页浏览器中运行。
Pyodide 可以安装来自 PyPi 的任何 Python 包。Pyodide 还包括一个外部函数接口,可以将 Python 包暴露给 JavaScript,并将浏览器 UI,包括 DOM,暴露给 Python。该项目还使许多 Python 科学包,包括 NumPy、Pandas、Matplotlib、SciPy 和 Scikit-learn,就可以在浏览器中运行。
近日 Pyodide 发布了 0.23.0,这是一个重要更新版本,更新内容包括将 CPython 升级到 3.11,以及其他功能增强和错误修复。此外开发团队还向 Pyodide 添加了多个新的软件包,包括 fastparquet, pynacl 和 mypy 的二进制包。
Pyodide 0.23.0 主要变化:
- 升级到 Python 3.11.2
Pyodide 0.23 使用 CPython 3.11.2,除了许多新特性和功能增强外,它还是第一个正式支持 WebAssembly 作为 PEP11 Tier 3 平台的版本。
据估计,Python 3.11 在原生执行 (native execution) 方面比 Python 3.10 快 10-60%,基准测试显示了与 WebAssembly runtime 相当的改进。
- 实验性支持 SDL2
开发团队在此版本添加了对基于 SDL 的软件包的支持,这些软件包依赖于 Emscripten 提供的功能。这是一项实验性功能,存在一些已知问题,目标是在下一个版本中解决这些问题,使其更加稳定。
开发者目前可以通过在 Pyodide 中运行使用 Pyxel 制作的游戏来尝试该特性,Pyxel 是一个流行的 Python 游戏库。
- 优化加载时间和体积
- 支持 Javascript API 和外部函数接口 (Foreign Function Interface)
- 改进构建系统和 CLI
- ……
详情查看发布公告。