Python 运行器
浏览器内跑 Python(Pyodide WASM 沙箱),代码不出本机
关于Python 运行器
Pyodide 把 CPython 编译成 WebAssembly,让完整的 Python 解释器跑在浏览器里。它支持标准库和一部分科学计算包(numpy、pandas 等),适合验证代码片段、教学演示、以及在无法安装环境的机器上做临时计算。代价是首次加载需要下载较大的运行时。
使用步骤
- 首次打开等待运行时下载(约 10MB,同会话内只加载一次)
- 在编辑器输入代码,需要第三方包时先 import 再自动安装
- 点击运行,stdout 与报错显示在下方输出区
- 处理数据时把 CSV/JSON 内容作为字符串粘进代码,沙箱读不了外部地址
常见错误
把沙箱当完整环境
没有文件系统、网络和部分 C 扩展。依赖 requests、socket 的代码在沙箱里跑不了,先确认代码只依赖纯 Python 部分。
首次加载误判为卡死
运行时下载期间页面无响应是正常的,等进度走完再操作;刷新会重新下载,耐心等一次即可。
大数据集直接硬编码
几万行的数据粘进代码字符串会让编辑器卡顿。先在外部做好抽样,沙箱里只验证逻辑。
常见问题
能访问本地文件或网络吗?
不能,这是沙箱的安全边界。需要外部数据时,请把内容粘贴进代码作为字符串常量。
为什么第一次运行特别慢?
需要下载约 10MB 的解释器运行时并初始化。同一次会话内后续运行几乎是瞬时的,刷新页面后需要重新加载。
能用 numpy、pandas 吗?
不能直接 import。默认环境只带标准库,numpy/pandas 要额外加载几十 MB 的 wheel,首屏代价太大。要做数据计算,用站内的「数值统计」和「CSV 数据体检」——它们背后是专门优化过的实现。
和本地装的 Python 版本一致吗?
不完全一致。这里跑的是编译成 WebAssembly 的 CPython,版本固定在某个主版本上,某些依赖 C 扩展、多线程、fork 的库无法工作。语法和标准库行为基本一致,平台相关的能力差异很大。
运行环境和代码会被保存吗?
不会。解释器加载在页面里,代码在你自己的标签页内存中执行,没有远端执行环节,刷新就没了。反过来说也别拿它当记事本——重要代码自己存好。
来源:基于开源 Pyodide (MPL-2.0) · License: MPL-2.0 · 分类:开发
相关阅读
- 二维码生成 —— 把文本/网址变成二维码,可下载 PNG
- 哈希计算 —— SHA-256/384/512 哈希,基于 WebCrypto 安全实现
- UUID / ULID 生成 —— UUID v4、ULID、Nano ID 批量生成,可作数据库主键
- DevDocs —— 同类第三方工具(官方在线版)
- Prettier Playground —— 同类第三方工具(官方在线版)
- 隐私与安全工具箱 —— 专题工具包
- 全部开发类工具 —— 按分类浏览
安全、快捷、开源工具及资源
无需安装、无需注册、无需命令行 —— 挑一个工具,填参数,出结果。