Python 增强提案:明确 WebAssembly 标准,重塑 Python 应用交付格局

张开发
2026/4/6 11:00:10 15 分钟阅读

分享文章

Python 增强提案:明确 WebAssembly 标准,重塑 Python 应用交付格局
【导语新获批的 Python 增强提案明确了 Python 未来遵循 WebAssembly 标准的方式。这一举措有望解决 Python 在 Wasm 应用中的诸多问题提升 Python 与 Wasm 协同工作的效率对开发者和整个生态系统意义重大。】Python 编译 Wasm 的现存困境大多数语言如 Rust 可直接编译为 Wasm 二进制目标文件但 Python 作为解释型语言需将解释器本身编译为 Wasm 后运行 Python 程序。这带来两个主要问题一是运行 Python 程序需完整的解释器和标准库副本且无机制将 Python 程序编译为含解释器副本的自包含 Wasm二是任何非纯 Python 编写的模块如 NumPy需提前编译出 Wasm 特定版本才能在 Wasm 中运行。WASI 与 WASI SDKPython 支持 Wasm 的关键Python 对 Wasm 的支持涉及 WASI 和 WASI SDK。WASI 是 Wasm 程序与主机系统交互的规范WASI SDK 是该规范的官方实现它是 Clang 编译器的修改版本使用 wasi - libc 库让 C 及兼容 C API 的语言编写的程序能访问主机 API。然而wasi - libc 不保证向前或向后兼容某些版本的 SDK 可能与特定版本的 CPython 存在兼容性问题。CPython 各版本对 WASI 的支持现状与规则从 3.11 版本开始CPython 已在 Wasm 上可用提供二级和三级支持更新的 wasip1 标准支持更好旧的 Emscripten 标准支持较少。且 CPython 使用的 WASI SDK 不一定是最新版本如 3.11 和 3.12 使用 SDK 21 版本3.13 和 3.14 使用 SDK 24 版本。未来CPython 针对使用 WASI 及其 SDK 制定严格规则某个 CPython 版本的第一个测试版发布时所支持的 WASI 或 WASI SDK 版本将在该版本的整个生命周期内得到支持。对特定版本所使用的 WASI 规范或 SDK 版本进行更改需得到 Python 指导委员会批准特殊情况除外。WASI 版本保证为 CPython 带来的利好未来Python 在与 WASI 协同工作方面将显著改进。这使 CPython 开发者更易确定要针对的 WASI 和 SDK 版本整个 WASI 生态系统也能更清晰哪些 Python 版本与不同版本的 WASI 和 SDK 兼容。维护带有扩展模块的 Python 库的开发者能更清楚如何将模块编译为 Wasm 适配各 Python 版本还能更早利用更新的 WASI 特性。编辑观点Python 增强提案明确 WebAssembly 标准解决了 Python 在 Wasm 应用中的痛点为开发者提供了更稳定的开发环境将推动 Python 在 WebAssembly 领域的应用促进整个生态系统的发展。

更多文章