如何让Kedro的globals.yml与OmegaConfigLoader正常配合?
解决Kedro中OmegaConfigLoader与globals.yml配合使用的问题
问题原因
OmegaConfigLoader 不再沿用旧版 TemplatedConfigLoader 的 globals_pattern 参数,这就是你触发 __init__() got an unexpected keyword argument 'globals_pattern' 错误的核心原因。OmegaConfigLoader采用了更灵活的全局变量配置逻辑。
正确配置方法
修改 settings.py 中的配置,使用 OmegaConfigLoader 原生支持的 globals 参数加载你的 globals.yml 文件:
from kedro.config import OmegaConfigLoader CONFIG_LOADER_CLASS = OmegaConfigLoader CONFIG_LOADER_ARGS = { "globals": {"filepath": "conf/base/globals.yml"} }
补充说明
- 如果你的
globals.yml存放在不同环境目录(比如conf/local),可以通过环境变量动态指定路径:"globals": {"filepath": "conf/${env}/globals.yml"} - 你在
catalog.yml中引用全局变量的语法(例如{{ start_date }})无需修改,和使用TemplatedConfigLoader时完全一致。
验证
修改完成后执行 kedro run,程序将正常加载 globals.yml 中的参数,同时消除版本弃用警告,适配Kedro 0.19及以上版本。
内容的提问来源于stack exchange,提问作者Magnus Persson
相关产品推荐
相关产品推荐

