Chapter 10 / 10

导出、分享与 JupyterLab

用 nbconvert 将 Notebook 转换为各种格式,以及 JupyterLab 的核心优势与迁移建议

导出 Notebook

完成分析后,通常需要将 Notebook 分享给不安装 Jupyter 的人,或提交为报告。Jupyter 支持多种导出格式。

通过菜单导出

打开 Notebook,点击 File → Download as,选择格式:

格式文件扩展名适用场景
Notebook.ipynb源文件,可继续编辑
Python.py提取代码,去除 Markdown 和输出
HTML.html静态网页,保留代码和输出,可直接浏览器打开
Markdown.md文档格式,便于 Git 查看
PDF via LaTeX.pdf学术报告(需要安装 LaTeX)
Reveal.js.html(幻灯片)基于 Web 的演示幻灯片

使用 nbconvert 命令行

nbconvert 是更强大的导出工具,支持批量处理和自定义模板:

# 导出为 HTML(最常用)
$ jupyter nbconvert --to html analysis.ipynb
→ analysis.html

# 导出为 Python 脚本
$ jupyter nbconvert --to script analysis.ipynb
→ analysis.py

# 导出为 PDF(需要安装 LaTeX + pandoc)
$ jupyter nbconvert --to pdf analysis.ipynb

# 导出并执行(先运行所有单元格,再导出)
$ jupyter nbconvert --to html --execute analysis.ipynb

# 批量导出整个目录
$ jupyter nbconvert --to html notebooks/*.ipynb

# 导出时不包含代码,只保留输出和文本
$ jupyter nbconvert --to html --no-input analysis.ipynb
TIP --execute 参数会先从头执行整个 Notebook,再导出。这是生成"可复现报告"的标准做法,常用于 CI/CD 中自动生成定期报告。

分享 Notebook

GitHub 自动渲染

.ipynb 文件推送到 GitHub,GitHub 会自动渲染成格式化的页面(包括图表和输出)。

# 在 push 前清除输出(减少 diff 噪音)
$ pip install nbstripout
$ nbstripout analysis.ipynb  # 清除所有输出

# 或者安装 git hook,每次 commit 自动清除
$ nbstripout --install
WARNING 带有输出的 Notebook(尤其是含有 Base64 图片)可能非常大,且 git diff 难以阅读。推荐提交时使用 nbstripout 清除输出,但保留一份"已运行"的版本用于渲染展示。

NBViewer

nbviewer.org 可以在线渲染任何公开的 Notebook URL,无需安装 Jupyter:

  1. 将 Notebook 上传到 GitHub 或 Gist
  2. 访问 nbviewer.org
  3. 输入 GitHub URL,即可生成可分享的渲染链接

Google Colab

Google Colab 是免费的云端 Jupyter 环境,无需安装:

JupyterLab:下一代界面

JupyterLab 是 Jupyter 的全新界面,是对经典 Notebook 的重大升级。

# 启动 JupyterLab
$ jupyter lab

JupyterLab vs 经典 Notebook

功能经典 NotebookJupyterLab
多面板布局❌ 每个文件独立标签页✅ 可拖拽调整多面板
文件浏览器仅主页可用始终可见的侧边栏
终端需要额外打开直接嵌入界面
代码编辑器仅 Notebook内置纯文本编辑器
CSV 预览✅ 直接浏览 CSV 文件
目录树✅ 侧边栏显示文档大纲
扩展生态有限丰富的 npm 扩展
界面主题有限多种亮/暗主题

JupyterLab 特色功能

多面板布局

可以将两个 Notebook 并排显示,左边写代码,右边看结果;或者左边 Notebook,右边是终端:

  1. 右键点击标签页
  2. 选择 "Create New View for Notebook"
  3. 拖拽到侧边,形成分屏布局

命令面板

Ctrl+Shift+P(macOS: ⌘+Shift+P)打开命令面板,搜索任何操作,类似 VS Code 的体验。

变量检查器

安装 @jupyterlab/debugger 扩展后,可以在侧边栏实时查看所有变量的值,无需执行 %whos

推荐扩展工具

工具安装功能
nbstripoutpip install nbstripout提交前清除 Notebook 输出
nbformatpip install nbformat读写 .ipynb 文件的 Python API
papermillpip install papermill参数化运行 Notebook(批量实验)
nbconvert已内置格式转换
jupyter_contrib_nbextensionspip install经典 Notebook 扩展包(目录、代码折叠等)

参数化 Notebook(papermill)

papermill 可以给 Notebook 中的变量注入参数,实现批量运行:

# 在 Notebook 中,给参数单元格打 "parameters" 标签
# (View → Cell Toolbar → Tags,添加 "parameters" 标签)
date = "2026-03-01"    # 这个单元格有 parameters 标签
symbol = "AAPL"

# 从命令行注入参数并运行
$ papermill analysis.ipynb output/AAPL_march.ipynb \
    -p date "2026-03-31" \
    -p symbol "AAPL"

# 批量运行,生成多份报告
$ for symbol in AAPL GOOG MSFT; do
    papermill analysis.ipynb output/${symbol}.ipynb -p symbol $symbol
  done

本章小结

恭喜完成! 你已经掌握了 Jupyter Notebook 的全部核心功能。下一步:尝试将你的日常数据分析工作迁移到 Jupyter,体验代码与文档一体化的高效工作流!