如何轻松将 .ipynb 转换为 HTML
Updated on

Jupyter 笔记本非常适合混合使用代码、叙述和视觉输出——但有时你需要一个可以通过电子邮件、托管或嵌入到文档站点的_纯网页_。将你的 .ipynb
文件转换为独立的 HTML,是让你的笔记本在任何浏览器中查看的最快方法,且无需为读者安装 Python 或 Jupyter。
以下内容将介绍:
- 一个免费、注重隐私的在线转换器(无需注册,数据不离开浏览器)
- 一个逐步的 CLI 操作教程,适用于任何标准 Jupyter 安装——无需额外工具
- 在 JupyterLab、VS Code 和 Google Colab 中的一键导出选项
- 其他网页转换工具的简要介绍
- 常见问题解答(FAQs)与排查技巧
第一部分 | 在线免费将 .ipynb 转换为 HTML
Runcell 的在线 ipynb → HTML 转换器
为什么选择 Runcell?
- 纯浏览器流程——转换完全在浏览器中进行;文件永不上传服务器([runcell.dev][1])
- 代码与输出都支持语法高亮,并以整洁、移动端友好的模板展示([runcell.dev][1])
- 免费且无限制——没有文件大小限制或水印
操作步骤
-
在任何现代浏览器中打开工具:
runcell.dev/tool/ipynb-to-html
-
上传你的笔记本
- 拖拽
.ipynb
文件,或 - 点击 “上传笔记本” 并选择文件
- 拖拽
-
等待几秒 —— 转换完成后,你会看到实时预览
-
点击“下载 HTML”(或下载图标)保存文件
-
分享或托管 导出的
*.html
——它是一个自包含页面,嵌入了 CSS、JavaScript 和图片,可离线打开
提示: Runcell 将图像以 base‑64 格式嵌入,因此 Matplotlib/Seaborn 图表会与笔记本中显示的一模一样。
第二部分 | 使用 Jupyter nbconvert
进行转换(无需额外工具)
如果你已经安装了 Jupyter,不需要安装任何新包——内置的 nbconvert
工具可以通过一条命令生成 HTML:
jupyter nbconvert --to html 你的笔记本名.ipynb
详细步骤
- 打开终端(命令提示符、PowerShell 或 Bash)
cd
到存放你的笔记本的文件夹- 运行上面那条命令
- 你会在同一目录下找到
你的笔记本名.html
nbconvert
默认随 Jupyter Notebook、JupyterLab 及 Anaconda 分发版一起安装,通常可以“直接用” ([Nbconvert][2], [Stack Overflow][3])。
第三部分 | 直接通过 Jupyter 界面导出
在 JupyterLab 或经典的 Notebook 界面内:
文件 → 另存为 → HTML (.html)
Jupyter 会在后台调用 nbconvert
并下载 HTML 文件([Saturn Cloud][4])。
第四部分 | 在 VS Code 中一键导出
- 在 VS Code 的内置笔记本编辑器中打开
.ipynb
- 点击 • • •(更多操作)菜单
- 选择 导出 → HTML
- 选择保存位置
无需扩展——VS Code 自带的 Jupyter 扩展会自动完成转换。
第五部分 | Google Colab工作流程
Colab 目前还没有官方的 HTML 导出按钮。最简单的方法是:
- 文件 → 下载 → 下载
.ipynb
- 使用 Runcell 或本地的
nbconvert
将笔记本转换成 HTML
第六部分 | 其他免费在线转换工具速览
工具 | 主要特性 |
---|---|
Vertopal | 支持选择 HTML4/HTML5,调整边距和模板([Vertopal][5]) |
CoolUtils | 三步简单操作,无需登录([CoolUtils][6]) |
TheOnlineConverter | 嵌入静态图像和图片,小文件限制([Online Converter][7]) |
Runcell 由于在客户端处理,最注重隐私。
常见问题解答
1. 为什么选择 HTML 而不是 PDF?
HTML 具有响应式、可搜索,并且更便于嵌入博客或仪表板。它还能保存交互式小工具(有限制) and 支持复制粘贴代码块。
2. 交互式 JavaScript 小工具(Plotly、ipywidgets)还能用吗?
Runcell 和 nbconvert
在可能的情况下会嵌入小工具的 JavaScript。通常,互动的 Plotly 图表可以正常工作;复杂的 ipywidgets 可能会变成静态输出。
3. 如何实现批量自动转换?
在循环中使用 nbconvert
:
<code>for f in \*.ipynb; do jupyter nbconvert --to html "\$f"; done</code>
4. 我的 HTML 文件很大,如何减小体积?
Inline 大量图片会导致文件变大。在笔记本中调用 <code>plt.savefig(..., dpi=80)</code>
或在导出前将图片转换为 <code>.jpg</code>
,可以减小文件大小。