OSError: [WinError 123] 当我创建 kfp 组件时

Posted

技术标签:

【中文标题】OSError: [WinError 123] 当我创建 kfp 组件时【英文标题】:OSError: [WinError 123] when I create kfp component 【发布时间】:2021-12-18 21:43:04 【问题描述】:

我正在尝试使用我自己在 Spyder 中本地笔记本中的组件在带有 kfp 的 Vertex AI 中创建管道。

当我运行以下代码时:

@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)
    dataset = df.pop('Class')

我收到以下错误:

OSError: [WinError 123] The filename, directory name, or volume label syntax is incorrect: '<ipython-input-11-b28c15ec667f>'

如果我在线使用 Jupyter 笔记本,则不会引发错误。

我做错了什么?谢谢。

【问题讨论】:

gcs_csv_path_train的值是多少?它是否遵循 Windows 文件命名方案? @JohnHanley gsc_csv_path_train 是谷歌云存储桶中文件的路径,就像这样:gsc_csv_path_train = f"bucket/folder/file.csv"。在 Traceback 中,错误指向以下行: def create_dataset( Google Cloud 存储的路径如下所示:gs://bucket/folder/file.csv 错误消息表示文件名被截获为Windows 文件系统。 【参考方案1】:

您需要检查您在代码中使用的文件路径。因为 Windows 文件名中有一些不被接受的字符,例如冒号“:”。你可以看到更多关于 Windows 标准路径的documentation。

在python代码中使用路径时,请遵循以下:

在任何路径前使用“r” - r 是一个字符串文字,可以让 任何字符串作为原始字符串,这意味着所有转义码都将是 忽略。 使用双引号“文件路径”或单引号“文件路径” 指定路径。 不要同时使用“”或“”

正确的文件路径如下

filepath = r'C:\Test\file\file-input-thecodebuzz.txt'

filepath = r"C:\Test\file\file-input-thecodebuzz.txt"

你可以看到更多documentation。

【讨论】:

以上是关于OSError: [WinError 123] 当我创建 kfp 组件时的主要内容,如果未能解决你的问题,请参考以下文章

OSError: [WinError 740] 请求的操作需要提升

“OSError: [WinError 1455]页面文件太小,无法完成操作。”解决方案

Python - OSError: [WinError 17] 系统无法将文件移动到不同的磁盘驱动器:

OSError:Windows 10 中的 [WinError 10013] 错误

Python 作为 Windows 服务运行:OSError: [WinError 6] 句柄无效

OSError: [WinError 126] 在 Python 中找不到指定的模块