Skip to content

如何轻松将 .ipynb 转换为 HTML

Updated on

一本实用指南,介绍将 Jupyter 笔记本(.ipynb)转换为可分享的 HTML 页面。包括免费在线转换器、无需额外安装的命令行操作指南、在 VS Code 和 Colab 中的一键导出、其他网页转换工具简介、常见问题解答等内容。

Jupyter 笔记本非常适合混合使用代码、叙述和视觉输出——但有时你需要一个可以通过电子邮件、托管或嵌入到文档站点的_纯网页_。将你的 .ipynb 文件转换为独立的 HTML,是让你的笔记本在任何浏览器中查看的最快方法,且无需为读者安装 Python 或 Jupyter

以下内容将介绍:

  • 一个免费、注重隐私的在线转换器(无需注册,数据不离开浏览器)
  • 一个逐步的 CLI 操作教程,适用于任何标准 Jupyter 安装——无需额外工具
  • 在 JupyterLab、VS Code 和 Google Colab 中的一键导出选项
  • 其他网页转换工具的简要介绍
  • 常见问题解答(FAQs)与排查技巧

第一部分 | 在线免费将 .ipynb 转换为 HTML

Runcell 的在线 ipynb → HTML 转换器

Runcell 在线 ipynb 转 html 转换器 (opens in a new tab)

为什么选择 Runcell?

  • 纯浏览器流程——转换完全在浏览器中进行;文件永不上传服务器([runcell.dev][1])
  • 代码与输出都支持语法高亮,并以整洁、移动端友好的模板展示([runcell.dev][1])
  • 免费且无限制——没有文件大小限制或水印

操作步骤

  1. 在任何现代浏览器中打开工具runcell.dev/tool/ipynb-to-html

  2. 上传你的笔记本

    • 拖拽 .ipynb 文件,或
    • 点击 “上传笔记本” 并选择文件
  3. 等待几秒 —— 转换完成后,你会看到实时预览

  4. 点击“下载 HTML”(或下载图标)保存文件

  5. 分享或托管 导出的 *.html ——它是一个自包含页面,嵌入了 CSS、JavaScript 和图片,可离线打开

提示: Runcell 将图像以 base‑64 格式嵌入,因此 Matplotlib/Seaborn 图表会与笔记本中显示的一模一样。


第二部分 | 使用 Jupyter nbconvert 进行转换(无需额外工具)

如果你已经安装了 Jupyter,不需要安装任何新包——内置的 nbconvert 工具可以通过一条命令生成 HTML:

jupyter nbconvert --to html 你的笔记本名.ipynb

详细步骤

  1. 打开终端(命令提示符、PowerShell 或 Bash)
  2. cd 到存放你的笔记本的文件夹
  3. 运行上面那条命令
  4. 你会在同一目录下找到 你的笔记本名.html

nbconvert 默认随 Jupyter Notebook、JupyterLab 及 Anaconda 分发版一起安装,通常可以“直接用” ([Nbconvert][2], [Stack Overflow][3])。


第三部分 | 直接通过 Jupyter 界面导出

在 JupyterLab 或经典的 Notebook 界面内:

文件 → 另存为 → HTML (.html)

Jupyter 会在后台调用 nbconvert 并下载 HTML 文件([Saturn Cloud][4])。


第四部分 | 在 VS Code 中一键导出

  1. 在 VS Code 的内置笔记本编辑器中打开 .ipynb
  2. 点击 • • •(更多操作)菜单
  3. 选择 导出 → HTML
  4. 选择保存位置

无需扩展——VS Code 自带的 Jupyter 扩展会自动完成转换。


第五部分 | Google Colab工作流程

Colab 目前还没有官方的 HTML 导出按钮。最简单的方法是:

  1. 文件 → 下载 → 下载 .ipynb
  2. 使用 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>,可以减小文件大小。