根本原因是浏览器拦截file://协议导致跳转失败;需生成配置文件、设置c.notebookapp.use_redirect_file=false和c.notebookapp.browser='macos-default',再重启jupyter即可直连http://localhost:8888/tree。

Mac用户启动Jupyter Notebook后终端显示http://localhost:8888/tree但浏览器始终不弹出,根本原因是Jupyter默认尝试用file://协议加载本地跳转页,而Safari、Chrome、Firefox等现代浏览器出于安全限制会直接拦截该协议,导致自动跳转链断裂;此时服务本身运行正常,只需绕过file协议直连即可。
生成并定位配置文件
打开终端,执行:
jupyter notebook --generate-config
命令会输出类似/Users/yourname/.jupyter/jupyter_notebook_config.py的路径,记下这个位置。如果提示“已存在”,说明配置文件早已生成,直接进入下一步。
这一步不能跳过——没有配置文件,后续所有修改都无效。
禁用file://跳转机制
用文本编辑器(如TextEdit或VS Code)打开上一步得到的jupyter_notebook_config.py文件。
滚动到底部,在空白处添加以下两行(注意是c.NotebookApp.use_redirect_file,不是c.ServerApp):
c.NotebookApp.use_redirect_file = False
c.NotebookApp.browser = 'macos-default'
【必须保存文件且关闭所有编辑器窗口】,否则修改不会生效。macOS系统默认浏览器注册名固定为'macos-default',写成'safari'或'chrome'将导致启动失败。
验证并启动
彻底退出所有终端窗口(包括后台运行的jupyter进程),重新打开一个干净终端。
执行:
jupyter notebook
终端输出地址后,系统默认浏览器会立即以http://协议直连localhost:8888/tree,不再经过任何跳转页。
若仍无反应,检查是否在终端中启用了代理或设置了http_proxy环境变量——Jupyter会继承这些变量并可能干扰连接。











