Jupyter Notebook默认从C盘启动,需区分临时切换(命令行切盘后启动)与永久修改(配置jupyter_notebook_config.py中c.NotebookApp.notebook_dir路径,注意双反斜杠或原始字符串格式)两种方式。

jupyter notebook 默认从 C 盘启动,是因为它按 Python 环境的用户主目录或当前工作目录 fallback。改到 D 盘运行不是“换盘”那么简单,关键看你要的是**每次启动都默认进 D 盘**,还是**临时进 D 盘干活**——两者操作逻辑完全不同,搞混了就会反复失败。
直接在命令行切到 D 盘再启动(最稳、零配置)
这是最快见效、不碰配置文件、适合多项目切换或临时验证的方法。
- 打开
Anaconda Prompt或 Windowscmd - 输入
D:回车,切换盘符 - 用
cd进入目标文件夹,比如:cd D:myproject - 执行:
jupyter notebook
此时服务根目录就是 D:myproject,新建文件、上传、保存全在此路径下。浏览器左侧面板显示的也是该路径。注意:不要用 cd /d D:myproject —— 在 Anaconda Prompt 中 /d 参数可能被忽略,老老实实用 D: + cd 两步更可靠。
永久修改 jupyter_notebook_config.py(一劳永逸但容易踩坑)
配置生效的前提是:你改的是 jupyter 实际加载的那个配置文件,且路径写法完全合规。
- 先生成或定位配置文件:
jupyter notebook --generate-config,输出路径类似C:Usersxxx.jupyterjupyter_notebook_config.py - 用 VS Code 或记事本打开它,搜索
c.NotebookApp.notebook_dir - 取消注释(删掉行首
#和空格),填入路径,必须满足任一格式:c.NotebookApp.notebook_dir = 'D:\myproject'或c.NotebookApp.notebook_dir = r'D:myproject' - 绝对不要用单反斜杠
D:myproject—— Python 会把m当转义字符,启动直接报错 - 路径里避免中文、空格、括号;如果目标文件夹不存在,手动
mkdir D:myproject创建
改完保存,关掉所有 python.exe 进程(任务管理器里清干净),再运行 jupyter notebook。如果仍开在 C 盘,大概率是配置文件位置错了——比如你有多个 Python 环境(conda env、venv、系统 Python),jupyter 可能加载了另一个环境下的配置。
%cd 和 os.chdir() 只影响当前 Kernel,别指望它改默认路径
在 Notebook 单元格里运行:%cd D:myproject 或 import os; os.chdir(r'D:myproject'),确实能让后续 !ls、pd.read_csv('data.csv') 找到 D 盘文件,但这只是当前内核的工作目录,和 jupyter notebook 启动时的根目录无关。
- 重启 Kernel 后,工作目录自动回到启动时的默认路径(C 盘那个)
- 新建的 .ipynb 文件依然保存在左侧文件树的根目录下,不是你
%cd进去的那个子目录 - 这个技巧只适合「已打开 Notebook,但想快速读写 D 盘某个子文件夹里的数据」
快捷方式加参数是最易忽略的“兜底方案”
如果你习惯双击桌面快捷方式启动,又不想动配置文件,可以直接改快捷方式属性里的“目标”字段:
- 右键快捷方式 → “属性” → “快捷方式”选项卡
- 在“目标”末尾追加:
--notebook-dir="D:myproject"(注意前面有个空格,引号不能少) - 完整示例:
"C:Anaconda3Scriptsjupyter-notebook.exe" --notebook-dir="D:myproject"
这个参数优先级高于配置文件,只要快捷方式没被其他程序覆盖或重置,就能稳定生效。但要注意:如果快捷方式指向的是 jupyter-lab.exe 而不是 jupyter-notebook.exe,那得换用 --notebook-dir 对应的 Lab 参数(--server-root),否则无效。
jupyter 正在读哪个配置、从哪个目录启动、又继承了哪个终端的当前路径。每次改完,务必用 !pwd(Notebook 里)和浏览器左侧文件树双重验证,而不是只看命令行输出。



















