默认会自动打开浏览器是因为 c.ServerApp.open_browser = True,关闭方法有两种:临时用 --no-browser 参数,永久修改配置文件将该值设为 False。

默认情况下,jupyter notebook 启动时会尝试调用系统浏览器打开 http://localhost:8888。如果你**不希望它自动弹窗**(比如在远程服务器、CI 环境、或只想后台运行服务),直接关闭这个行为即可,不需要删配置或改路径。
为什么默认会打开浏览器?
Jupyter 内部依赖 Python 的 webbrowser 模块触发跳转,只要 c.ServerApp.open_browser 为 True(默认值),就会执行。它和你装了什么浏览器、用户名是否中文、路径有没有空格完全无关——这些只影响「打开失败」,不是「要不要打开」。
关闭自动打开的两种可靠方式
推荐优先使用命令行参数,简单、临时、无副作用:
- 启动时加
--no-browser:jupyter notebook --no-browser - 如果还指定了端口或目录,顺序无关:
jupyter notebook --no-browser --port=8889 --notebook-dir=/path/to/nbs
若需永久禁用(比如固定用于服务器部署),修改配置文件:
- 运行
jupyter notebook --generate-config(如尚未生成) - 编辑
~/.jupyter/jupyter_notebook_config.py - 找到并取消注释这行,把
True改成False:c.ServerApp.open_browser = False
注意 c.NotebookApp.browser 不是控制开关
很多人误改 c.NotebookApp.browser 或写 webbrowser.register,其实这是**指定用哪个浏览器打开**,不是「开/关」开关。即使你把它设为空字符串或注释掉,只要 c.ServerApp.open_browser 是 True,Jupyter 仍会尝试用系统默认浏览器打开——失败就静默报错,但进程不会跳过这一步。
真正起决定作用的只有 c.ServerApp.open_browser 和 --no-browser。其他所有配置都是围绕「怎么打开」,而不是「要不要打开」。


















