💬 观点Simon Willison
Publishing WASM wheels to PyPI for use with Pyodide — Pyodide 支持发布 WASM 轮子到 PyPI,简化了 WebAssemb
Pyodide 支持发布 WASM 轮子到 PyPI,简化了 WebAssembly 中 Python 包的发布流程。
2026-06-13原文
本文为要点摘要,完整细节以原文为准。
🧭 一图看懂
由原文自动提炼 · 以原文为准点击任一分支,查看这一点的一句话解读
PyPI 支持发布 WASM wheels
Pyodide 314.0 起可直接向 PyPI 发布 PyEmscripten 平台 wheel 并在运行时安装
- 基于 PEP 783 定义的 PyEmscripten 平台
- PyPI 支持 PR 于 4 月 21 日合入
⚙️ 流程拆解
STEP 1编写 C/Rust 扩展
STEP 2用 cibuildwheel 构建 WASM…
STEP 3GitHub Actions 发布到 PyPI
STEP 4Pyodide 中 micropip 安装
🔗 涉及的概念与玩家
- Pyodide产品
- PyPI产品
- PEP 783概念
- luau-wasm产品
- Luau产品
- Simon Willison人物
- cibuildwheel产品
- WebAssembly概念
- Pyodide—发布 wheel…→PyPI
- PEP 783—定义平台→Pyodide
- Simon Willison—发布→luau-wasm
- luau-wasm—封装→Luau
- cibuildwheel—构建→luau-wasm
- luau-wasm—编译为→WebAssembly
Pyodide 314.0 版本允许开发者将针对 Pyodide 或兼容 PEP 783 的 Python 运行时构建的包直接发布到 PyPI,解决了之前手动维护 300 多个包的瓶颈。
- PyPI 原生支持 WASM 轮子:PyPI 已支持
pyemscripten_202*_wasm32标签的轮子,包维护者可以像发布原生平台轮子一样发布 WASM 轮子。这对 agent 开发者意味着更便捷的 WebAssembly 包分发,无需依赖第三方托管。 - 实际案例:luau-wasm 包:作者通过 GitHub Actions 和 cibuildwheel 将 Luau 语言编译为 WASM 并发布到 PyPI,展示了从构建到部署的完整流程。工具链开发者可参考此案例,自动化 WASM 包的构建和发布。
- 当前采用情况:查询显示已有 28 个 PyPI 包使用新标签发布 WASM 轮子,包括 uuid7-rs、pydantic_core 等。这表明社区正在逐步采纳,为开发者提供了更多现成的 WebAssembly 兼容包。
原文:Publishing WASM wheels to PyPI for use with Pyodide · 作者 Simon Willison
🕸 顺着图谱继续读
- luau-wasm 0.1a0 — Simon Willison 发布 luau2026-06-13 · 共同涉及 Simon Willison、luau-wasm、Luau
- Cloudflare Python Workers are now generally available — Cloudflare Python Workers 正式 GA:Python 经2026-09-21 · 共同涉及 Pyodide、WebAssembly、Simon Willison
- SQLite Query Explainer — 用AI解释SQLite查询计划,降低开发者理解门槛。2026-07-18 · 共同涉及 Simon Willison、Pyodide、WebAssembly
- OPFS + Pyodide test harness — 用OPFS+Pyodide在浏览器中持久化编辑SQLite文件。2026-06-23 · 共同涉及 Pyodide、WebAssembly、Simon Willison