如何设置Jupyter Lab所有Notebook默认工作目录为其启动的项目根目录
问题
如何将Jupyter Lab中所有Notebook的工作目录设置为项目文件夹/myproject/,无论Notebook存放在该父文件夹下的哪个子文件夹中?工作目录可通过Linux/Mac系统下的!pwd命令或Windows系统下的!cd命令查看。
背景
Jupyter Lab会话是在项目文件夹下通过执行/myproject/jupyter lab命令启动的。需求为修改Jupyter Lab的全局设置,不需要在Notebook内部通过代码修改工作目录,实现所有内核启动时的默认工作目录均为Jupyter Lab的启动文件夹,全场景使用统一的相对路径,不受Notebook所在子目录位置影响。
解决方案
按照以下步骤操作即可完成全局配置:
- 第一步:生成Jupyter Lab配置文件(若已生成可直接跳过)
执行命令:jupyter lab --generate-config
执行后会在用户目录下生成默认配置文件,对应路径为:- Linux/Mac:
~/.jupyter/jupyter_lab_config.py - Windows:
C:\Users\你的用户名\.jupyter\jupyter_lab_config.py
- Linux/Mac:
- 第二步:修改配置文件
打开上述配置文件,先在文件开头添加导入语句:import os
之后搜索找到c.KernelManager.cwd配置项,取消注释并修改为:c.KernelManager.cwd = os.getcwd()
如果你仅需要固定当前项目的工作目录为/myproject/,也可以直接写绝对路径:c.KernelManager.cwd = '/myproject/'
若未搜索到该配置项,直接将上述语句添加到配置文件末尾即可。 - 第三步:重启Jupyter Lab生效
保存配置文件后关闭所有已运行的Jupyter Lab进程,重新在项目目录下执行jupyter lab启动即可。
验证方法
打开任意存放在子目录下的Notebook,执行!pwd(Linux/Mac)或!cd(Windows),输出结果为/myproject/即配置成功。
注意事项
如果之前针对单个内核修改过kernel.json配置中的工作目录参数,需要删除对应自定义配置,否则会覆盖全局配置。
内容的提问来源于stack exchange,提问作者Ran Feldesh
相关产品推荐
相关产品推荐

