直接修改配置文件即可生效,无需更改系统默认浏览器或安装插件;关键在于正确配置 c.notebookapp.browser 并配合 webbrowser.register(),注意 jupyter notebook 与 lab 的差异、路径写法及环境变量优先级。

直接改配置文件就能生效,不用动系统默认浏览器设置,也不用装插件。关键在 c.NotebookApp.browser 和 webbrowser.register() 的配合,版本差异和路径写法不对就白改。
确认你用的是 Notebook 还是 Lab?
新版 Jupyter(2023 年后)默认启动的是 JupyterLab,它不读 c.NotebookApp.browser,而是走系统默认浏览器或环境变量 BROWSER。如果你执行 jupyter notebook 却打开了 Lab 页面,说明你实际在用 Lab —— 此时改 jupyter_notebook_config.py 无效。
- 想强制用 Notebook:终端里明确运行
jupyter notebook(不是jupyter lab) - 检查当前启动的是哪个:看浏览器地址栏是
/tree(Notebook)还是/lab(Lab) - Lab 用户要改浏览器,优先设环境变量:
BROWSER=chrome(Windows)或export BROWSER=firefox(Linux/macOS)
修改 jupyter_notebook_config.py 的正确写法
配置文件不存在就先生成:jupyter notebook --generate-config,生成后路径通常是 C:Users{用户名}.jupyterjupyter_notebook_config.py(Windows)或 ~/.jupyter/jupyter_notebook_config.py(macOS/Linux)。
- 用文本编辑器打开该文件,搜索
c.NotebookApp.browser - 删掉行首的
#,确保这行是激活状态:c.NotebookApp.browser = '' - 在这行**正下方**插入两行(顺序不能错):
import webbrowserwebbrowser.register("chrome", None, webbrowser.GenericBrowser(r"C:Program FilesGoogleChromeApplicationchrome.exe")) - 再下一行写:
c.NotebookApp.browser = "chrome"(引号内名字必须和register()第一个参数一致) - 路径中空格和括号没问题,但一定要用原始字符串
r"..."或双反斜杠"C:\Program Files\...",否则报UnicodeDecodeError
常见失败原因和对应检查点
改完重启仍弹 IE、Edge 或根本没反应,大概率卡在这几个地方:
-
chrome.exe路径错了:右键桌面 Chrome 快捷方式 → 属性 → “目标”栏完整路径复制过来,注意末尾确实是chrome.exe,不是Application文件夹本身 - 注册名和使用名不一致:比如
register("mychrome", ...)但写成c.NotebookApp.browser = "chrome"→ 必须完全一样 - 配置文件被多个环境共用:Anaconda、miniconda、venv 各自可能有独立的
.jupyter目录,确认你改的是当前环境生效的那个(可运行jupyter --paths查 config path) - 终端没关干净:改完配置后,把所有正在运行的
jupyter notebook进程杀掉(Ctrl+C或任务管理器),再重新运行命令
最易忽略的一点:Jupyter 启动时如果控制台输出里有 Failed to launch browser,说明 GenericBrowser 初始化失败,八成是路径带中文、权限不足,或 exe 文件被杀毒软件拦截 —— 换个路径试试,比如把 Chrome 复制到 D: oolschrome.exe 再注册。











