如何在Marimo和非Jupyter环境中使用Kedro

本指南介绍如何从非Jupyter环境(如Python脚本或Streamlit应用)以及现代笔记本界面(如Marimo)以编程方式设置Kedro,而无需依赖IPython魔术命令。Marimo笔记本是一种注重可重现性的响应式笔记本,它们可作为脚本执行并作为应用共享。此处的响应性确保代码和输出始终保持同步。

概述

Kedro Jupyter notebook用户依赖魔法命令%load_ext kedro.ipython来加载他们的目录、上下文、管道和会话对象,更多信息请参阅Kedro and Notebooks。这个魔法命令会自动找到Kedro项目的根目录位置。

在现代笔记本界面(如Marimo)或简短的Python脚本中,这类魔法命令不可用。然而,在开发数据科学项目时,仍然需要使用Kedro来共享配置、凭证或项目中的数据目录。

动态加载Kedro配置

无需依赖魔法操作,使用以下脚本即可自动查找Kedro根目录并加载Kedro会话对象:

from pathlib import Path

from kedro.framework.session import KedroSession
from kedro.framework.startup import bootstrap_project
from kedro.framework.project import configure_project
from kedro.utils import _find_kedro_project

# Get project root
current_dir = Path(__file__).resolve().parent
project_root = _find_kedro_project(current_dir)
bootstrap_project(Path(project_root))

# Create and use the session
with KedroSession.create(project_path=project_root) as session:
    context = session.load_context()
    catalog = context.catalog
    credentials = context.config_loader["credentials"]
    data = catalog.load("mytable")

这允许在不使用IPython魔法的情况下加载Kedro设置,包括目录和凭据。