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

本地Spyder创建KFP组件触发WinError 123错误该如何解决?

错误根源
  • KFP的@component装饰器在编译组件时,需要读取函数定义所在的源文件代码完成序列化。Spyder Notebook运行在Windows系统下时,每个代码cell对应的临时内核文件命名会带上<ipython-input-xxx-xxx>格式的标识,而Windows文件系统不允许路径中出现<、>这类特殊字符,KFP尝试读取该路径时就会触发WinError 123报错。在线Jupyter Notebook运行环境一般是Linux/macOS,这类系统允许路径带尖括号,所以不会触发错误。
  • 你当前的组件代码也存在语法错误:Output[Dataset]类型的参数不能直接赋值为DataFrame对象,需要先将处理好的数据写入dataset.path对应的路径中,KFP才能正确输出流水线Artifact。
修复方案
  • 方案1:把自定义组件的代码单独写到独立的.py文件中,在Spyder Notebook里导入该文件里的组件函数再进行流水线编译,避免KFP读取带特殊字符的临时cell路径。
  • 方案2:如果要直接在Notebook cell里写组件代码,给@component装饰器增加base_image参数的同时,额外指定output_component_file参数,显式指定组件YAML的输出路径,绕开临时文件读取逻辑。
  • 方案3:修正组件内部的赋值逻辑,正确的Dataset输出写法参考如下:
@component(base_image="python:3.9", packages_to_install=["pandas"])
def create_dataset(
    gcs_csv_path_train: str,
    dataset: Output[Dataset],
):
    import pandas as pd
    df = pd.read_csv(gcs_csv_path_train)
    label_df = df.pop('Class')
    # 把处理好的数据写入Dataset对应的路径
    label_df.to_csv(dataset.path, index=False)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 23:45:04