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

Kedro v0.18.7删除pipeline2后报错:Pipeline无可用节点

问题描述

原本运行正常的Kedro项目,执行以下操作后彻底无法运行:

  1. 执行kedro pipeline create pipeline2创建与主pipeline并行的新pipeline
  2. 发现无需该pipeline后,执行kedro pipeline delete pipeline2删除

当前核心报错:

ValueError: Pipeline contains no nodes after applying all provided filters

执行kedro registry list仅返回[default],且尝试过以下修复均无效:

  • 重新创建主pipeline失败
  • 创建空pipeline并迁移nodes.py和pipelines.py代码失败
  • 执行kedro build-docs无效
  • 执行pip install pip-tools、pip install -r src/requirements.txt、pip install "kedro-datasets[<group>]"无效果

环境信息:

  • Kedro v0.18.7
  • Python 3.10.8
修复步骤

1. 检查Pipeline注册配置

Kedro 0.18.x的模块化pipeline注册依赖src/<项目名>/pipelines/__init__.py文件,删除pipeline2时大概率误删了其他pipeline的注册代码。

打开该文件,确保所有需要加载的pipeline(比如data_processing、data_science)都正确注册,示例格式:

from .data_processing.pipeline import create_pipeline as create_data_processing_pipeline
from .data_science.pipeline import create_pipeline as create_data_science_pipeline

def register_pipelines():
    data_processing = create_data_processing_pipeline()
    data_science = create_data_science_pipeline()

    return {
        "__default__": data_processing + data_science,
        "data_processing": data_processing,
        "data_science": data_science
    }

重点:__default__是默认执行的pipeline组合,必须包含所有需要运行的节点。

2. 验证子Pipeline的pipeline.py文件

逐个检查每个子pipeline目录(如src/pipelines/data_processing/)下的pipeline.py,确保create_pipeline函数正确返回包含节点的Pipeline对象,示例:

from kedro.pipeline import Pipeline, node
from .nodes import node_function1, node_function2

def create_pipeline(**kwargs):
    return Pipeline(
        [
            node(
                func=node_function1,
                inputs="input_data",
                outputs="processed_data",
                name="process_data_node"
            ),
            node(
                func=node_function2,
                inputs="processed_data",
                outputs="final_output",
                name="generate_output_node"
            )
        ]
    )

确认每个节点的引用路径正确,没有因删除pipeline2时误修改其他文件。

3. 清理pipeline2残留配置

检查以下位置是否还有pipeline2的残留配置,如有直接删除:

  • pyproject.toml:查找pipeline2相关条目
  • src/<项目名>/settings.py:确认REGISTERED_PIPELINES配置未被错误修改
  • 临时缓存:删除项目根目录下的.kedro文件夹,再重新执行kedro install

4. 强制刷新Pipeline注册表

执行以下命令清理缓存并测试单个pipeline:

kedro clean
kedro run --pipeline=data_processing  # 先单独测试单个pipeline是否能运行

如果单个pipeline能正常运行,再测试默认组合:

kedro run

5. 检查节点导入路径

确保nodes.py中的函数在pipeline.py中正确导入,若存在导入错误,Kedro会静默跳过节点,直接导致“no nodes”错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 22:12:31