AI News HubLIVE
站内改写1 分钟阅读

将WASM轮子发布到PyPI以便与Pyodide一起使用

Pyodide 314.0版本现在允许将WebAssembly编译的Python包直接发布到PyPI并运行时安装,大大简化了分发流程。示例包luau-wasm已成功发布,目前已有28个包采用此新方式。

Pyodide 314.0版本于2026年6月13日发布,带来了一个里程碑式的改变:Python包现在可以编译为WebAssembly(WASM)并作为轮子文件直接发布到PyPI,然后在浏览器中的Pyodide运行时安装。这一功能由来已久,Pyodide团队长期以来一直是分布式Python科学计算栈进入浏览器的关键桥梁,但过去他们不得不手动构建并托管超过300个包,每新增一个包都需要人工审核,成为社区发展的巨大瓶颈。现在,包开发者可以像发布Linux、macOS或Windows原生轮子一样,将Pyodide兼容的WASM轮子发布到PyPI。支持这一功能的PyPI拉取请求已于4月21日合并。

为了验证这一新功能,作者Simon Willison创建了一个名为luau-wasm的示例包。Luau是Roblox开发的一种“小巧、快速、可嵌入的编程语言,基于Lua并具有渐进类型系统”,采用MIT许可证发布。其编译器用C++编写。Willison此前已成功将Luau编译为WebAssembly并在Pyodide中运行,此次他利用Codex和GPT-5.5模型,构建了一个完整的GitHub Actions工作流,实现了从编译到发布的全自动化。最终产物是一个276KB的轮子文件,用户只需几行代码即可在Pyodide中安装并运行Luau脚本。他还部署了一个HTML演示页面,该页面加载Pyodide、安装luau-wasm并提供一个交互式界面,用户可以在浏览器中尝试运行Luau代码,示例包括斐波那契数列计算等。

此外,Willison通过BigQuery查询了PyPI的公开数据集,发现已有28个包使用了新的pyemscripten_202*_wasm32标签。这些包涵盖多种用途,包括uuid7-rs、imgui-bundle、pydantic_core、typst等。随着这一机制的普及,未来预计会有更多Python包支持在浏览器中直接运行,进一步推动WebAssembly生态的发展。