notebook 6.x需在jupyter_notebook_config.py中修改c.notebookapp.nbserver_extensions禁用后端插件,前端插件须通过nbextensions页面关闭;notebook 7.x则必须使用jupyter labextension disable命令禁用,配置文件无效,且需重启服务并硬刷新浏览器。

禁用插件前先确认 Notebook 版本
不是所有 Jupyter Notebook 版本都支持通过配置文件直接禁用插件。Notebook 6.x 及更早版本依赖 jupyter_nbextensions_configurator 图形界面管理插件,而 Notebook 7.x 已切换为与 JupyterLab 兼容的扩展系统,jupyter labextension disable 成为主力命令——但这个命令不写入配置文件,而是修改本地扩展状态。
如果你用的是 Notebook 7(检查方式:jupyter notebook --version 输出 ≥ 7.0),配置文件 jupyter_notebook_config.py 对插件启停基本无效;真正起作用的是命令行禁用 + 重启服务。
Notebook 6.x:在配置文件里禁用插件(仅限部分插件)
某些老插件(如 codefolding、toc2)在启用时会向配置文件写入类似 c.NotebookApp.nbserver_extensions 的条目。你可以手动注释掉它们:
c.NotebookApp.nbserver_extensions = {"jupyter_nbextensions_configurator": True, "toc2": True}- 把想禁用的插件对应项设为
False,比如改为"toc2": False - 或者直接删掉整行(如果没其他插件依赖它)
- 保存后重启
jupyter notebook才生效
⚠️ 注意:nbserver_extensions 只控制“后端服务扩展”,不影响前端 UI 插件(如 Hinterland、ExecuteTime)。这些仍需通过 Nbextensions 页面勾选关闭。
Notebook 7.x:禁用插件必须用命令行,配置文件不生效
从 Notebook 7 开始,插件统一走 JupyterLab 扩展机制。配置文件里的 c.NotebookApp.nbserver_extensions 被弃用,写进去也不会被读取。
使用ydata-profiling(前身为pandas-profiling)生成全面的数据质量报告,包含相关性分析、缺失值模式和基数检测。导出交互式HTML仪表板和JSON摘要。
正确做法是运行:
jupyter labextension disable @jupyterlab/filebrowser-extension:download
常见可禁用插件名(注意命名格式):
-
@jupyterlab/filebrowser-extension:download(禁用下载按钮) -
@jupyterlab/shortcut-extension(禁用快捷键面板) -
@jupyterlab/notebook-extension:cell-toolbar(禁用单元格工具栏)
执行后必须重启 Jupyter 服务,且浏览器要硬刷新(Ctrl+F5),否则缓存可能让插件看起来还在。
为什么改了配置文件插件还在?
这是最常踩的坑:以为改了 jupyter_notebook_config.py 就能关掉插件,结果刷新页面照常加载。根本原因是:
- 插件实际由前端 JavaScript 注入,配置文件只管后端是否加载其服务模块
- 多数 UI 类插件(如 Table of Contents、Codefolding)依赖前端资源,即使后端禁用,前端脚本仍可能被静态加载
- 浏览器缓存会保留旧的 extension bundle,尤其在开发调试阶段
所以,优先用 jupyter labextension disable(Notebook 7)或 Nbextensions 页面开关(Notebook 6),配置文件只适合做全局开关或兼容性兜底,别指望它单点禁用某个 UI 功能。










