jupyter notebook默认无目录,需安装jupyter_contrib_nbextensions并执行jupyter contrib nbextension install --user,重启后在nbextensions中勾选table of contents (2),且notebook中须含正确格式的markdown标题(如# 标题)才能显示目录图标。

Jupyter Notebook 默认不带目录索引,必须靠 jupyter_contrib_nbextensions 中的 Table of Contents (2) 插件实现。直接 pip 或 conda 安装后不配置用户级 extension 路径,插件根本不会生效——这是 90% 用户卡住的第一步。
安装 jupyter_contrib_nbextensions 必须带 --user 参数
只运行 pip install jupyter_contrib_nbextensions 或 conda install -c conda-forge jupyter_contrib_nbextensions 是不够的。插件代码装进 Python site-packages 了,但 Jupyter 根本不知道去哪里找前端资源。
- 必须补上这句:
jupyter contrib nbextension install --user - 如果报错
command not found: jupyter-contrib-nbextension,说明安装没成功,优先换镜像源重试:pip install jupyter_contrib_nbextensions -i https://pypi.tuna.tsinghua.edu.cn/simple - Windows 用户若用 Anaconda,推荐在 Anaconda Prompt 里执行,避免环境错乱
- 执行完这条命令后,会看到类似
Copying: ... -> C:\Users\XXX\AppData\Roaming\jupyter\nbextensions\toc2的输出,这才是真正落地了
启用 toc2 前必须重启 Jupyter Notebook 进程
很多人装完就立刻打开浏览器点 Nbextensions 页面,发现列表为空或勾选后不生效——因为旧的 Jupyter 进程还在读取旧配置。
- 关闭所有
jupyter notebook终端窗口和浏览器标签页 - 重新运行
jupyter notebook,再访问http://localhost:8888 - 这时首页才会出现
Nbextensions标签页;点进去勾选Table of Contents (2)(注意不是Table of Contents,老版本才叫这个) - 勾选后不用刷新页面,功能已加载,但目录按钮还不会自动出现——它只对已有或新建的 notebook 生效
目录按钮不显示?检查 notebook 是否含有效 Markdown 标题
即使插件启用成功,新打开一个空白 notebook,右上角也不会出现目录图标。它只在检测到至少一个 # 级标题时才激活。
- 新建 cell → 切换为
Markdown模式(不是 Code)→ 输入# 数据加载→ 按Ctrl+Enter执行 - 这时右上角工具栏最右侧会出现一个
≡图标,点击即展开/收起目录 - 标题必须用
#开头,且#和文字之间**必须有空格**,##数据清洗是无效的,## 数据清洗才行 - 支持最多 6 级标题(
######),但建议控制在 4 级以内,否则折叠体验差
保存失败?大概率是 toc2 版本太旧
早期 toc2(v0.5.x 之前)存在严重 bug:启用后 notebook 无法保存,界面左上角持续显示 “Not saving — kernel busy” 或自动回滚。
- 检查版本:
jupyter-contrib-nbextension --version,若低于0.7.0,果断升级 - 升级命令:
pip install --upgrade jupyter_contrib_nbextensions - 升级后仍需重跑:
jupyter contrib nbextension install --user(覆盖前端资源) - 如果还是不行,可临时禁用
Auto-save功能,在 notebook 设置中关闭自动保存,手动按Ctrl+S保底
真正麻烦的不是装不上,而是装了却以为没装——比如漏掉 --user、没重启进程、或误把普通 code cell 当成标题写。目录本质是基于 Markdown 标题的 DOM 解析,它不理解 Python 注释、不解析字符串里的 # 号,只认 cell mode + 正确格式的 # 标题。这点一旦理解,几乎所有“不显示”“不更新”问题都能快速定位。











