最可靠方式是在终端中先进入目标目录再启动Jupyter:Linux/macOS用cd && jupyter notebook,Windows用cd /d或Set-Location;--notebook-dir参数可强制跳转但限制保存范围;修改配置文件仅控制访问根目录而非初始打开位置。
启动 Jupyter 时指定工作目录最可靠
Jupyter Notebook 和 JupyterLab 启动时默认使用当前终端所在路径,不是 Python 安装路径,也不是用户主目录——这点很多人误判。想让它一打开就进
,最稳的方式是**在终端里先进入目标目录再启动**:
Linux/macOS:
Windows(CMD):
Windows(PowerShell):
别指望改完配置文件就能“永久生效”——Jupyter 不读取系统级默认路径配置,它只认启动时的当前工作目录(
)。很多教程让你改
里的
,但这个参数只限制可访问的根目录范围,**不改变初始打开位置**,还可能引发 404 或权限报错。
用
参数强制跳转目录
如果实在不想每次 cd,可以用命令行参数绕过当前路径。注意:这不是“设置默认路径”,而是“启动时跳转到指定路径”:
这个参数会把 Jupyter 的根目录设为该路径,并自动在浏览器中打开该目录下的文件列表。但它有个硬限制:
后续新建 notebook 只能保存在该目录或其子目录下
;试图用“上传”或“新建”操作写到外面会失败,报错信息通常是
或
。另外,Windows 路径里反斜杠
容易被 shell 当转义符处理,建议统一用正斜杠
或双反斜杠
。
立即学习
“
Python免费学习笔记(深入)
”;
修改
的常见误区
生成配置文件后,有人直接改
就以为万事大吉。实际踩坑点很集中:
Python 3.14.3
微软官方的 Python 扩展,是 VS Code 安装量最高的扩展(209M+)。集成 IntelliSense(通过 Pylance)、调试(通过 Python Debugger)、代码检查、格式化、重构和单元测试等功能。支持 Jupyter Notebook、虚拟环境管理和多 Python 版本切换。
下载
路径必须存在且有读写权限,否则 Jupyter 启动直接报错:
路径末尾不能带斜杠(
❌),必须是
✅,否则可能触发内部路径拼接异常
如果用了相对路径(如
),它相对于配置文件所在位置,不是你执行
的位置——极难调试
JupyterLab 1.x+ 默认忽略这个配置项,只认
或启动目录;Lab 4.0+ 才开始有限支持
所以除非你有严格的安全隔离需求(比如只允许访问某几个固定目录),否则不建议动这个配置项。它解决的不是“默认打开哪”,而是“最多允许访问哪”。
在 notebook 里临时切工作目录要小心
运行单元格时用
或
魔法命令确实能改当前 kernel 的工作目录,但效果仅限于本次 session:
—— 下次重启 kernel 就失效
—— 同上,且不会影响其他 kernel
但
或
看到的是 kernel 当前路径,而
对话框仍按 Jupyter 启动时的路径展示
这意味着:你用
切到子目录后,用
能正常跑,但双击打开同目录下的另一个 .ipynb 文件,Jupyter 会提示“找不到”,因为它还在原始启动目录里找。这种“视觉路径”和“执行路径”分离,是新手最常懵圈的地方。
真正需要多项目切换的话,与其折腾全局配置,不如习惯用不同终端窗口分别进入各项目目录启动 Jupyter。路径这事,手动 cd 一次比调半天配置更省时间、更少出错。
/home/user/projectcd /path/to/your/project && jupyter notebookcd /d D:myproject && jupyter notebookSet-Location D:myproject; jupyter notebookos.getcwd()jupyter_notebook_config.pyc.NotebookApp.notebook_dir--notebook-dirjupyter notebook --notebook-dir="/path/to/project"jupyter lab --notebook-dir="C:worknalysis"403 ForbiddenPermission denied/\jupyter_notebook_config.pyc.NotebookApp.notebook_dir = '/my/path'OSError: [Errno 2] No such file or directory/path//path./notebooksjupyter notebook--notebook-diros.chdir()%cd%cd /tmp/dataimport os; os.chdir('/tmp/data')!pwd!lsFile → Open%cd!python script.py