Python

Pyodide:通过 WebAssembly 在浏览器中运行 Python

Pyodide 通过 WebAssembly 将 CPython 解释器带到浏览器中,实现零服务器依赖的完整 Python 科学计算堆栈。

Keeping this site alive takes effort — your support means everything.
無程式碼也能輕鬆打造專業LINE官方帳號!一鍵導入模板,讓AI助你行銷加分! 無程式碼也能輕鬆打造專業LINE官方帳號!一鍵導入模板,讓AI助你行銷加分!
Pyodide:通过 WebAssembly 在浏览器中运行 Python

如果你可以在浏览器中运行 Python,并能完整使用 NumPy、pandas、scikit-learn 和 matplotlib,而且不需要任何服务器后端,那会怎么样?这正是 Pyodide 所提供的。它将 CPython 移植到 WebAssembly,使完整的 Python 科学计算堆栈可以直接在浏览器中使用。

Pyodide 是一项变革性技术,适用于数据科学教育、交互式文档和基于浏览器的计算。用户可以完全在客户端分析数据、训练模型和可视化结果。无需配置服务器,无需安装 Python 运行时,且数据不会离开用户的电脑。

Pyodide 包含的内容

描述捆绑版本
NumPy数值计算最新稳定版
pandas数据分析最新稳定版
scikit-learn机器学习最新稳定版
matplotlib数据可视化最新稳定版
scipy科学计算最新稳定版

架构概览

Pyodide 运行编译为 WebAssembly 的完整 CPython 解释器。具有 C 扩展的 Python 包被编译为 WASM 并动态链接。JavaScript 桥接允许 Python 和 JavaScript 之间的无缝数据交换,使 Python 代码能够直接操作 DOM。

性能特性

指标原生 Python浏览器 Python(Pyodide)
NumPy 1000 万次运算0.15 秒0.35 秒
pandas DataFrame 加载0.5 秒1.2 秒
Python 循环速度1x0.5x
内存开销~50MB~80MB 基础
启动时间即时1-3 秒初始加载

如需更多信息,请访问 Pyodide GitHub 仓库Pyodide 文档

常见问题

Q:Pyodide 可以访问网络吗? A:可以,通过浏览器的 fetch API,桥接到 Python 的 requests 风格 API。

Q:Pyodide 在初始加载后可以离线工作吗? A:是的,一旦通过 service worker 加载并缓存包后,它可以完全离线工作。

Q:我可以安装自定义的 Python 包吗? A:可以,通过 micropip 安装纯 Python 包,或通过构建具有 C 扩展的自定义 Pyodide 包。

Q:Pyodide 的下载量有多大? A:基本运行时约为 12MB(压缩后)。每个额外包增加 1-10MB。

Q:Pyodide 适合生产环境使用吗? A:是的,它被主要平台使用,包括 JupyterLite、Google Colab 的客户端模式,以及众多交互式文档网站。

TAG
CATEGORIES