You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Databricks中使用%run相对路径调用父目录笔记本的路径问题咨询

解决Databricks %run相对路径前缀问题的方法

方法1:用变量替换构造正确的绝对路径(推荐)

利用Databricks魔法命令支持变量替换的特性,先获取并修正当前笔记本的父目录路径,再用%run执行目标笔记本:

# 获取当前笔记本的原始路径
current_notebook_path = dbutils.notebook.entry_point.getDbutils().notebook().getContext().notebookPath().get()
# 替换路径前缀,转换为Workspace开头的正确路径
corrected_parent_path = "/Workspace/Repos" + current_notebook_path.split("/Repos")[1].rsplit("/", 1)[0]

然后执行%run命令:

%run "$corrected_parent_path/notebook_name.py"

这个方法既保留了相对路径的灵活性(不需要硬编码完整路径),又能正确识别Workspace下的Repos目录,同时可以导入目标笔记本的变量、函数到当前作用域。

方法2:将目标笔记本作为Python模块导入

如果目标笔记本是.py格式,可以通过添加路径到sys.path的方式直接导入,替代%run:

import sys
from pathlib import Path

# 获取并修正当前笔记本路径
current_path = dbutils.notebook.entry_point.getDbutils().notebook().getContext().notebookPath().get()
corrected_path = current_path.replace("/Repos", "/Workspace/Repos", 1)
# 获取父目录的路径
parent_dir = str(Path(corrected_path).parent)

# 将父目录添加到Python模块搜索路径
sys.path.append(parent_dir)

# 导入目标笔记本的内容
import notebook_name

导入后,即可直接使用目标笔记本中定义的变量、函数,比如notebook_name.my_function()。

方法3:手动指定带Workspace前缀的路径

如果仓库结构稳定,可以直接使用基于/Workspace/Repos的完整路径:
假设当前笔记本路径为/Workspace/Repos/my_org/my_repo/sub_dir/current_notebook.py,目标笔记本在父目录/Workspace/Repos/my_org/my_repo/下,那么可以写:

%run "/Workspace/Repos/my_org/my_repo/notebook_name.py"

内容的提问来源于stack exchange,提问作者Andrew LaPrise

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 02:23:28