直接运行jupyter notebook --generate-config生成配置文件,记准输出路径;编辑jupyter_notebook_config.py,删掉#c.notebookapp.notebook_dir = ''的注释,填入已创建的目标路径(反斜杠双写或用正斜杠),并确保快捷方式未硬编码%userprofile%。

直接改配置文件最稳,但路径写错、注释没删、目录不存在这三处一出问题,Jupyter 就会启动失败或继续开在 C 盘。
怎么生成并定位 jupyter_notebook_config.py
配置文件不是自带的,得手动触发生成。打开 Anaconda Prompt 或 CMD,运行:
jupyter notebook --generate-config
它会输出类似 C:Users你的用户名.jupyterjupyter_notebook_config.py 的路径。这个路径必须记准——不同 Python 环境(比如 conda 多环境、pip 单独装的 jupyter)可能加载不同位置的配置,别凭记忆去 C:Users 下瞎翻。
常见误区:
- 没运行这行命令就直接找文件 → 找不到,因为文件根本不存在
- 在错误的终端(比如 VS Code 内置终端)里执行 → 可能调用的是另一个 Python 解释器,生成的配置不生效
- 看到输出路径里有中文用户名(如
C:Users张三)→ 有些旧版 Windows 对路径中中文支持不稳定,建议后续目标路径避开中文
c.NotebookApp.notebook_dir 怎么填才不报错
用文本编辑器(记事本、VS Code 都行)打开上一步生成的 jupyter_notebook_config.py,搜索 c.NotebookApp.notebook_dir。你会看到一行带 # 的注释:
#c.NotebookApp.notebook_dir = ''
必须做三件事:
- 删掉开头的
#和它前面所有空格(只留c.NotebookApp.notebook_dir = '') - 把单引号里的内容替换成你的真实路径,比如
'D:\Jupyter_Projects'或r'D:/Jupyter_Projects' - 确保目标文件夹已真实存在(
D:Jupyter_Projects得提前在资源管理器里建好)
反斜杠必须双写(\)或改用正斜杠(/),否则 Python 把
当成换行、 当成制表符,直接导致启动报错 SyntaxError 或服务静默退出。
为什么改了配置还是打开 C 盘?
改完保存重启,浏览器却仍显示 C 盘路径,大概率是以下某个原因:
- 启动 Jupyter 时用了
--notebook-dir=...命令行参数 → 它优先级最高,会完全覆盖配置文件设置 - 快捷方式目标里硬编码了路径(比如属性 → “起始位置” 填了
%USERPROFILE%)→ 双击图标时绕过了配置文件 - 系统里有多个
.jupyter文件夹(比如在C:根目录、Anaconda 安装目录下也生成过)→ Jupyter 加载了别的配置 - 修改的是
jupyter_lab_config.py而不是jupyter_notebook_config.py→ Notebook 和 Lab 配置不互通
验证是否生效:启动后看浏览器地址栏,如果 URL 是 http://localhost:8888/tree/D%3A/Jupyter_Projects 这类含你目标盘符的路径,才算成功;只看左侧面板显示不够,因为面板可手动切换。
临时切路径用 %cd 还是 os.chdir()?
两者都能立刻改变当前 Kernel 的工作目录,但只对当前 Notebook 生效,Kernel 重启就重置:
-
%cd D:\data—— 更快,不用 import,支持 Tab 补全路径 -
import os; os.chdir(r'D:data')—— 兼容性略高,某些极老 IPython 版本不认%cd
注意:%cd 后运行 !pwd 或 os.getcwd() 才能确认是否真改了;别只信左侧面板——它有时缓存显示,刷新页面才更新。
真正容易被忽略的是:路径变更不会影响新打开的 Notebook 的默认保存位置,它只改当前 Kernel 的读写上下文。要让“新建文件”落到新目录,必须靠前面说的配置文件方式。











