Pyodide 脚本运行器(生成器)
编写 Python 代码并选择需要的科学计算包,生成一个内嵌 Pyodide 的独立 HTML 文件;该文件在浏览器打开后会用 Pyodide 真正运行你的 Python 代码,但生成过程本身(本工具页面)不执行 Python。
免费在线工具
Loading…
使用说明
- 点击“选择预设示例”中的卡片(Hello World、NumPy矩阵运算、Pandas数据处理、Matplotlib绘图)快速加载一份完整的 Python 代码示例,或直接在代码框里编写自己的 Python 代码。
- 在“选择需加载的 Python 包”区域勾选代码中用到的包(如 numpy、pandas、matplotlib、scipy 等 Pyodide 内置支持的包),会自动在生成的文件里加入 pyodide.loadPackage() 加载逻辑。
- 按需修改页面标题,勾选“加载完成后自动运行”决定 Pyodide 加载完毕后是否自动执行代码(否则需要手动点击生成页面里的“运行 Python”按钮)。
- 点击“复制完整 HTML 代码”把生成的代码复制走自行部署,或点击“下载为 .html 文件”直接下载一个可双击在浏览器打开的独立文件。
- 打开下载得到的 HTML 文件后,页面会通过 CDN(cdn.jsdelivr.net/pyodide)加载真正的 Pyodide 运行时(约 10MB,中国大陆用户可能需要镜像),加载完成后在浏览器里真实执行你写的 Python 代码,print 输出会显示在页面上。
功能介绍
- 提供 4 个预设 Python 代码示例:Hello World、NumPy 矩阵运算(求逆/行列式/特征值)、Pandas 数据处理(DataFrame/分组统计)、Matplotlib 绘图(生成图表并转为 base64 图片输出)。
- 内置 12 个可勾选的 Pyodide 常用包标签:NumPy、Pandas、Matplotlib、SciPy、scikit-learn、SymPy、Pillow、Requests、BeautifulSoup4、lxml、PyYAML、micropip。
- 生成一个完整的、可独立运行的单文件 HTML(内嵌样式和脚本),该文件用 ES Module 动态导入 Pyodide (v0.26.4),通过 pyodide.setStdout/setStderr 捕获 print 输出并显示在页面上。
- 可配置生成文件的页面标题,以及 Pyodide 加载完成后是否自动运行代码。
- 支持一键复制生成的 HTML 源码,或直接下载为 pyodide-runner.html 文件。
- 重要边界:本工具页面本身不加载 Pyodide、不执行任何 Python 代码——真正的 Python 执行发生在你下载/复制出去的那个独立 HTML 文件被打开之后,且依赖能访问 cdn.jsdelivr.net 的网络环境。
使用场景
制作可离线分享的 Python 代码演示页面
想给别人展示一段 Python 计算逻辑,又不想让对方装 Python 环境,用本工具生成一个单文件 HTML,对方双击打开浏览器就能看到真实的运行结果。
快速验证一段 NumPy/Pandas 代码是否能在 Pyodide 里跑通
打算把某段数据处理逻辑迁移到浏览器端用 Pyodide 跑,先用本工具勾选对应包生成测试页面,确认代码在 Pyodide 环境下没有兼容性问题。
制作教学用的浏览器内 Python 练习页面
给学生准备一个不需要安装任何软件、打开浏览器就能运行 Python 代码的练习环境,用预设示例快速生成起点页面再自行修改代码内容。
生成带图表输出的自包含分析报告
用 Matplotlib 预设示例为基础,编写一段生成图表并转为 base64 内嵌图片的分析代码,生成的独立 HTML 打开后能直接看到图表结果,不依赖任何外部图片文件。
常见问题
我在这个页面点“运行”按钮,代码会立刻在这里执行吗?
不会。这个工具页面只负责编辑代码、选择包、生成 HTML 文本,本身并不加载 Pyodide 也不执行 Python。真正的执行发生在你下载或复制出去的独立 HTML 文件被打开之后。
生成的 HTML 文件打开后需要联网吗?
需要。该文件通过 CDN(cdn.jsdelivr.net/pyodide)动态加载 Pyodide 运行时(约 10MB)和你勾选的 Python 包,首次打开必须联网下载,之后浏览器可能会缓存部分资源。中国大陆网络访问该 CDN 可能不稳定,工具说明里也提示了这一点,需要自行更换镜像源。
生成文件里的 Matplotlib 绘图为什么最后是打印一段 HTML 文本?
Matplotlib 预设示例用的是非交互式 Agg 后端,把图表保存成 PNG 后转成 base64 字符串,通过 print 输出一段 <img> 标签文本,这段文本可以复制粘贴到别的 HTML 页面里查看图像,本身不会直接渲染。
所有 Pyodide 内置包都能选吗,选了没用到的包会怎样?
列表里的 12 个包都是 Pyodide 生态里常见的科学计算/网络请求相关包,勾选后会加入到生成文件的 pyodide.loadPackage() 调用里;如果勾选了代码里没实际 import 的包,只是会让加载时间变长、多下载一些用不到的数据,不会导致运行错误。