改Jupyter工作目录需按需求选择永久修改配置、临时切换或命令行指定路径:永久修改需编辑jupyter_notebook_config.py并确保路径格式正确;临时切换用%cd或os.chdir,仅对当前Kernel生效;命令行参数--notebook-dir可绕过配置强制指定路径。

改工作目录不是“选一个方法试试”,而是分清楚:你要的是永久生效、全局默认,还是临时跳转——选错方式,轻则下次启动还原,重则 jupyter notebook 启动失败报错。
永久修改默认工作目录(改配置文件)
这是最常用也最容易翻车的一步。核心是编辑 jupyter_notebook_config.py,但必须确认三点:配置文件存在、路径格式正确、配置项未被其他设置覆盖。
- 先运行
jupyter notebook --generate-config,确保配置文件生成(路径通常为C:Users用户名.jupyterjupyter_notebook_config.py或~/.jupyter/jupyter_notebook_config.py) - 打开该文件,搜索
c.NotebookApp.notebook_dir,删掉行首的#取消注释,填入绝对路径,例如:c.NotebookApp.notebook_dir = 'D:\Jupyter_Projects'(Windows 必须双反斜杠,Mac/Linux 用正斜杠即可) - 保存后关闭所有 Jupyter 进程,再重新运行
jupyter notebook——注意:不是刷新网页,是彻底关掉服务再启 - 如果仍进 C 盘,检查是否装了多个 Python 环境(如 conda + pip 全局),
jupyter --version和which jupyter(Mac/Linux)或where jupyter(Windows)确认当前命令对应的是哪个环境
临时切换当前 Notebook 的工作目录(不改配置)
适合已打开 Notebook,但想立刻读取 D:data
aw 下的 CSV 文件,又不想重启内核。两种写法效果一样,但行为有差异:
- 用魔法命令最简单:
%cd D:\data\raw(Windows)或%cd /Users/me/data/raw(Mac/Linux),执行后!pwd或os.getcwd()就能验证 - 用标准库也行:
import os; os.chdir(r'D:data aw'),注意加r''前缀避免转义问题 - ⚠️ 关键限制:这个切换只对当前 Kernel 生效,Kernel 重启后自动回到启动时的默认路径(即配置文件里设的那个,或没配时的用户主目录)
命令行参数强制指定路径(绕过配置)
当你在多个项目间频繁切换,又不想反复改配置,或者只是想快速验证某路径是否可访问,直接用参数最干净:
- 运行
jupyter notebook --notebook-dir="D:Temp",服务会完全忽略jupyter_notebook_config.py中的notebook_dir设置 - 路径中含空格也不用额外处理,只要用英文双引号包住就行(Windows)或单引号(Unix-like)
- 可配合快捷方式使用:新建
start_dproject.bat,内容为@echo off jupyter notebook --notebook-dir="D:MyProjects",双击即用 - ⚠️ 注意:如果你同时在配置文件里写了
c.NotebookApp.allow_origin或c.NotebookApp.password等安全相关项,它们依然生效;--notebook-dir只覆盖路径
常见错误和静默失效原因
很多人按教程操作后发现“没变化”,往往卡在这些细节上:
-
jupyter notebook启动时实际加载的是jupyter_lab_config.py而非jupyter_notebook_config.py(尤其你常用 JupyterLab),此时应改c.ServerApp.root_dir而非c.NotebookApp.notebook_dir - 路径末尾多了一个反斜杠,比如
'D:\Jupyter\',某些旧版本会因此启动失败,报FileNotFoundError - 用 VS Code 内置终端启动 Jupyter,它可能继承了当前文件夹作为工作目录,优先级高于配置文件 —— 此时先
cd到目标路径再运行命令 - 配置文件权限不足(尤其 Windows 下用管理员身份生成但普通用户运行),导致修改被忽略
真正麻烦的不是改哪一行,而是改完之后不知道它到底有没有被加载。最稳妥的验证方式:启动时加 --debug 参数,看控制台输出里 Using default config: ... 指向的是否是你编辑的那个文件。


















