Kedro项目运行报错:ModuleNotFoundError与ValueError求助
Kedro 0.18.13项目错误修复方案
错误根源分析
ModuleNotFoundError: No module named 'kedro_mnist.pipelines.':pipelines模块导入语句存在多余后缀点,或pipelines目录的模块结构不完整。KeyError: 'pipeline'、ValueError: Failed to find the pipeline named 'pipeline':register_pipelines()函数未返回包含'pipeline'键的字典,Kedro默认会查找该名称的流水线。
分步修复步骤
1. 规范pipelines模块结构
确保kedro_mnist/src/kedro_mnist/pipelines目录下存在__init__.py文件,并正确导出流水线创建函数。示例:
如果流水线逻辑写在pipelines/mnist_pipeline.py中,__init__.py内容应为:
from .mnist_pipeline import create_pipeline
2. 修正register_pipelines.py
修改kedro_mnist/src/kedro_mnist/register_pipelines.py,确保正确导入流水线并返回符合要求的字典:
from kedro.pipeline import Pipeline from .pipelines import create_pipeline def register_pipelines() -> dict[str, Pipeline]: main_pipeline = create_pipeline() return { "pipeline": main_pipeline, "__default__": main_pipeline # 可选,将主流水线设为默认运行项 }
注意:删除导入语句中多余的后缀点(如
from .pipelines. import ...),避免触发模块找不到的错误。
3. 检查节点函数导入路径
确认流水线中数据加载、模型计算、评估节点的函数导入路径正确,示例:
# 在mnist_pipeline.py中 from kedro_mnist.nodes.data_loader import load_mnist_data from kedro_mnist.nodes.model_trainer import train_model from kedro_mnist.nodes.model_evaluator import evaluate_model
4. 移除无效hooks.py
之前创建的hooks.py未解决问题,反而可能干扰流水线加载,直接删除该文件或注释掉所有内容。
验证运行
执行kedro run命令,控制台将正常输出模型精度的浮点型数值,不再出现模块缺失和流水线找不到的错误。
内容的提问来源于stack exchange,提问作者Brahim Khalil Abid
相关产品推荐
相关产品推荐

