如何通过命令行指定Jupyter Notebook的运行工作目录
实现方法整理
以下是几种不同场景下的可用方案,你可以根据自己的使用习惯选择:
方法1:启动时手动指定(临时生效,适合多项目切换场景)
就是你提到的基础方案,每次启动时直接传入根目录路径即可:
- 如果在项目根目录打开终端,直接执行:
python -m jupyter notebook --cwd . - 如果在其他位置启动,把
.替换为项目根目录的绝对/相对路径即可,不需要修改任何配置。
方法2:项目级内核配置(固定生效,无需每次加启动参数)
给当前项目单独创建专属Jupyter内核,所有用该内核运行的Notebook都会自动将工作目录设为项目根:
- 先执行
jupyter kernelspec list,查看你常用的Python内核的存储路径,默认路径一般为:- Mac/Linux:
~/Library/Jupyter/kernels/python3 - Windows:
C:\Users\你的用户名\AppData\Roaming\jupyter\kernels\python3
- Mac/Linux:
- 复制该内核文件夹,重命名为方便识别的名称,比如
my_project_py3 - 打开新文件夹内的
kernel.json,新增cwd字段配置项目根目录的绝对路径,示例如下:
{ "argv": [ "python", "-m", "ipykernel_launcher", "-f", "{connection_file}" ], "display_name": "我的项目Python3", "language": "python", "cwd": "/home/xxx/work/my_project_root" }
- 之后打开项目内的Notebook时,右上角切换为你新建的专属内核即可,不需要再额外调整路径。
方法3:Notebook内动态切换(灵活度最高,无需修改全局配置)
如果不想改内核或启动参数,直接在每个Notebook的第一个代码Cell中加入以下代码即可:
import os # 如果Notebook存放在根目录下的jupyter_notebooks文件夹,直接跳一级即可 os.chdir("../") # 可打印确认当前工作目录 print(os.getcwd())
如果需要移动项目位置,也不需要修改配置,相对路径会自动适配。
方法4:全局修改Jupyter配置(仅适合单项目固定使用场景)
如果你所有Notebook都需要默认用同一个根目录,可以修改全局配置:
- 执行
jupyter notebook --generate-config生成默认配置文件 - 打开生成的
jupyter_notebook_config.py,找到# c.NotebookApp.notebook_dir = ''字段,去掉注释后将值替换为项目根目录的绝对路径,之后所有Jupyter启动都会默认使用该路径作为工作目录。
内容的提问来源于stack exchange,提问作者reyymo
相关产品推荐
相关产品推荐

