因为快捷方式中的%userprofile%参数会覆盖配置文件设置,导致jupyter无视c.notebookapp.notebook_dir而强制跳转至c盘用户目录;需删除快捷方式“目标”末尾的%userprofile%,并确保配置文件路径正确、已取消注释、引号包裹且目录事先存在。

为什么改了配置文件还是从C盘启动
因为 jupyter_notebook_config.py 里的 c.NotebookApp.notebook_dir 设置被快捷方式里的启动参数覆盖了。Windows 下双击桌面或开始菜单图标时,目标栏常带 %USERPROFILE% 或 --notebook-dir=...,它优先级高于配置文件。即使你正确修改了配置,只要快捷方式里还写着 %USERPROFILE%,Jupyter 就会无视你的 notebook_dir,强行跳回 C 盘用户目录。
常见错误现象:
– 配置文件已保存,路径也用双引号包好、反斜杠已转义(如 'D:\Jupyter'),但浏览器打开仍是 C:Usersxxx
– 启动后控制台报错 FileNotFoundError: [Errno 2] No such file or directory,说明路径不存在或权限不足
– 路径中用了单个 (如 'D:Jupyter'),Python 把 J 当成转义字符,导致路径解析失败
怎么生成并定位正确的配置文件
不要猜路径,用命令确认真实位置。在 Anaconda Prompt 或 CMD 中执行:
jupyter notebook --generate-config
它会明确输出类似这样的提示:
Writing default config to: C:UsersAlice.jupyterjupyter_notebook_config.py
这个路径就是你要编辑的文件。注意:
– 如果你装了多个 Python 环境(比如通过 pyenv、Miniconda 和系统 Python 共存),jupyter 命令可能调用的是非预期环境下的可执行文件,导致配置写到错误位置
– 可用 where jupyter(Windows)或 which jupyter(macOS/Linux)验证当前命令来源
– 若输出显示路径不在你预期的用户目录下,先激活目标环境再运行生成命令
配置文件里怎么写路径才不报错
打开 jupyter_notebook_config.py,搜索 notebook_dir,找到这行:
# c.NotebookApp.notebook_dir = ''
做三件事:
– 删除开头的 # 和所有前导空格,取消注释
– 在等号右边填入完整路径,必须用引号包裹
– 路径分隔符统一用正斜杠 /(最稳妥),或双反斜杠 (Windows 风格),**不能混用**
正确示例:
c.NotebookApp.notebook_dir = 'D:/Jupyter_Projects'<br>c.NotebookApp.notebook_dir = 'D:\Jupyter_Projects'<br>c.NotebookApp.notebook_dir = r'D:Jupyter_Projects'
错误示例:
c.NotebookApp.notebook_dir = 'D:Jupyter_Projects' ← J 被当转义<br>c.NotebookApp.notebook_dir = D:/Jupyter_Projects ← 缺少引号<br>c.NotebookApp.notebook_dir = "D:/Jupyter/My Project" ← 空格没问题,但确保该目录已存在
关键提醒:目标文件夹必须**提前手动创建好**,Jupyter 不会自动建目录。如果路径不存在,服务根本起不来。
怎么让快捷方式真正认配置
右键桌面或开始菜单的 Jupyter Notebook 图标 → “属性” → 查看“目标”栏。典型内容是:
"C:UsersAliceAnaconda3Scriptsjupyter-notebook.exe" %USERPROFILE%
把末尾的 %USERPROFILE% **整个删掉**,只保留可执行文件路径本身,然后点“确定”。
补充检查项:
– “起始位置”栏也可能是 %USERPROFILE%,同样要清空或改为你的目标路径(如 D:Jupyter_Projects)
– 如果你用的是 Anaconda Navigator 启动,它默认忽略配置文件,应改用命令行或修改后的快捷方式启动
– 修改后务必关闭所有 Jupyter 进程(任务管理器里杀掉 python.exe 或 jupyter-notebook.exe),再双击图标
最易被忽略的一点:改完配置和快捷方式后,别急着双击——先在命令行里跑一次 jupyter notebook(不带参数),看是否真能进目标目录。只有命令行验证成功了,再修快捷方式才有意义。否则你永远在修一个没生效的配置。











