jupyter notebook本身没有内置自动检查更新机制,所谓“更新提示”实为jupyterlab扩展、nbextensions插件或conda/pip等外部工具所致;需分别禁用lab的autocheckforupdates、插件的check_for_updates配置及包管理器提示。

确认是不是 Jupyter Notebook 自身在检查更新
直接运行 jupyter notebook --help 或查官方文档,你会发现配置项里压根没有 update_check 这类开关。Jupyter Notebook 启动时只做内核连接、端口绑定、静态资源加载,不发任何版本比对请求。
常见误判来源:
- 你在用 JupyterLab(不是 Notebook),它默认启用
@jupyterlab/application-extension的更新检查逻辑; - 你装了第三方插件,比如
nbextensions中的collapsible_headings或notify,它们自己带检查逻辑; - 浏览器地址栏显示“已过期”或“缓存版本旧”,其实是 Service Worker 或 PWA 缓存没清,不是服务端在检查;
- 你在终端里执行
conda update jupyter或pip list --outdated后看到提示,那是包管理器行为,和 Notebook 运行时无关。
如果是 JupyterLab 弹出更新提示
JupyterLab 确实有更新检查逻辑,但默认关闭。如果弹窗出现,说明某处显式启用了它。
检查并修改配置:
- 打开配置文件:
~/.jupyter/lab/user-settings/@jupyterlab/application-extension/plugin.jupyterlab-settings(Linux/macOS)或%USERPROFILE%\.jupyter\lab\user-settings\@jupyterlab\application-extension\plugin.jupyterlab-settings(Windows); - 确保内容为:
{"autoCheckForUpdates": false}; - 如果文件不存在,新建一个,保存后重启 JupyterLab;
- 注意:这个设置只影响 Lab UI 层,不影响后端服务(
jupyter_server)——后者从不检查更新。
禁用 nbextensions 插件的独立更新检查
很多经典 nbextension(如 zenmode、codefolding、hide_input)会在自己的配置里加 check_for_updates 字段。
操作步骤:
- 打开
~/.jupyter/nbconfig/notebook.json; - 搜索
"check_for_updates"或"auto_update"; - 把对应值设为
false,例如:"codefolding": {"check_for_updates": false}; - 若不确定哪个插件在弹窗,临时移除所有 nbextension:
jupyter contrib nbextension uninstall --user,再逐个重装排查。
别忘了 Conda 和 pip 的“静默提醒”
你每次启动终端后看到的 Your conda version is out of date 或 You are using pip version X, but version Y is available,是 shell 初始化脚本(如 ~/.bashrc 或 condarc)触发的,和 Jupyter 无关。
关闭方式:
- Conda:编辑
~/.condarc,加入:notify_outdated_conda: false
; - Pip:在
~/.pip/pip.conf(Linux/macOS)或%APPDATA%\pip\pip.ini(Windows)中添加:[global]disable-pip-version-check=true
; - 注意:这些只是隐藏提示,不影响功能,也不代表“更新被禁用”,只是不告诉你而已。
jupyter_server_config.py 注入的异步 HTTP 请求。这种得看具体部署环境,没法一概而论。











