必须安装jupyter_contrib_nbextensions和jupyter_nbextensions_configurator两个包,并执行jupyter contrib nbextension install --user与jupyter nbextension enable --py jupyter_nbextensions_configurator --user命令,否则nbextensions选项卡不可见;启用后需关闭“disable configuration for nbextensions without explicit compatibility”才能使用目录导航、代码折叠等功能。

装不上 Nbextensions 选项卡?不是包没装对,就是关键命令漏了——尤其是 jupyter contrib nbextension install --user 和 jupyter nbextension enable --py jupyter_nbextensions_configurator --user 这两步缺一不可。
为什么“装了包却看不到Nbextensions菜单”
常见错误现象:执行 pip install jupyter_contrib_nbextensions jupyter_nbextensions_configurator 后重启 Jupyter,顶部菜单依然没有 Nbextensions 标签页。
根本原因在于:两个包只是提供了代码和配置器逻辑,但前端资源(JS/CSS)没复制到 Jupyter 能读取的路径,且配置器本身未被启用。
-
jupyter_contrib_nbextensions是插件仓库,含所有功能(如Table of Contents (2)、Code folding),但不自带界面入口 -
jupyter_nbextensions_configurator是菜单生成器,但它默认不激活——必须显式运行enable命令 -
jupyter contrib nbextension install --user才真正把插件静态文件拷贝进~/.jupyter/nbextensions/,跳过这步,勾选也无效
Windows / macOS / Linux 通用安装命令(pip 用户)
确保已关闭所有 Jupyter Notebook 进程(包括浏览器标签页),再在终端中逐行执行:
-
pip install jupyter_contrib_nbextensions jupyter_nbextensions_configurator -i https://pypi.tuna.tsinghua.edu.cn/simple(加清华源提速,避免超时失败) -
jupyter contrib nbextension install --user(必须带--user,否则可能写入系统目录权限不足) -
jupyter nbextension enable --py jupyter_nbextensions_configurator --user(启用配置器,不是--sys-prefix)
注意:Windows 用户若用 Anaconda Prompt,请**以管理员身份运行**;macOS/Linux 用户若提示 Permission denied,不要加 sudo,改用 --user 即可。
启动后必调的关键开关
打开 Jupyter Notebook,点击顶部新出现的 Nbextensions 标签页,第一件事是取消勾选:
Disable configuration for nbextensions without explicit compatibility
这个选项默认开启,会直接屏蔽 Table of Contents (2)、Variable Inspector、Collapsible Headings 等主流插件——它们没在元数据里硬声明兼容最新版 Jupyter,但实际完全可用。不关掉它,所有插件都灰显不可用。
之后勾选你需要的功能,比如:
-
Table of Contents (2):依赖 Markdown 的#、##标题自动生成导航 -
Code folding:支持按单元格或按代码块折叠,不是只折整个 cell -
Variable Inspector:右侧悬浮窗实时显示当前 kernel 变量名、类型、值(需先运行过代码)
conda 用户的注意事项
conda 安装看似简单,但容易因环境错位失效:
- 如果用
conda install -c conda-forge jupyter_contrib_nbextensions,后续仍要补jupyter contrib nbextension install --user,否则 JS 文件不会落地 -
--sys-prefix参数只适用于 conda 环境中激活了对应 env 的情况;若你用 base 环境,--user更稳妥 - 执行完命令后,别忘了检查
~/.jupyter/nbextensions/目录下是否有jupyter_contrib_nbextensions子目录,以及里面是否包含toc2、codefolding等文件夹——这是验证安装是否真正成功的最直接方式











