DBR特性Files in Repos已启用但无法导入模块,报错“No module named”
检查模块结构与命名规范
确保所有包含.py文件的子文件夹下都存在__init__.py(空文件即可),这是Python识别包的必要条件;同时避免使用Python关键字作为文件名(如import.py),防止命名冲突。确认导入语句的路径规则
导入时必须使用从仓库根目录开始的完整路径,不支持相对导入。例如仓库结构为:your_repo/ data_processing/ __init__.py transform.py notebooks/ analysis.ipynb在
analysis.ipynb中需用from data_processing import transform或import data_processing.transform,而非from ..data_processing import transform。验证集群Repos配置与状态
检查集群配置中「Advanced > Repos」的根目录设置是否为默认的/Repos;完成配置检查后重启集群,部分配置变更需重启才能生效。确认文件可正常读取
使用dbutils.fs.head("/Repos/你的用户名/你的仓库名/data_processing/transform.py")验证文件内容可被正确读取,确保文件无损坏且编码为UTF-8。检查文件权限
确认你对目标.py文件拥有读取权限,即使能查看编辑文件,权限不足也可能导致导入失败,可联系管理员核实Repo权限设置。用DBFS绝对路径添加到sys.path
尝试手动将仓库根目录的DBFS映射路径添加到sys.path,示例代码:import sys sys.path.append("/dbfs/Repos/你的用户名/你的仓库名") import data_processing.transform注意必须使用
/dbfs前缀,因为Files in Repos在DBFS上有底层映射,直接使用/Repos无法被Python的模块识别机制正确解析。
内容的提问来源于stack exchange,提问作者jccorrea

