Kubeflow Pipelines中packages_to_install包源与自定义模块安装问题
KFP 安装
packages_to_install依赖的包查找规则 KFP 处理packages_to_install列表的逻辑非常直接:组件容器启动后,会直接调用镜像内自带的pip执行安装命令,包查找路径完全遵循pip本身的规则:
- 默认从当前pip配置的软件源拉取包,包括公共PyPI源、你提前在基础镜像里配置的私有PyPI源
- 支持所有pip原生支持的安装路径格式,不要求包必须发布到公共PyPI源。
不构建自定义基础镜像安装自定义Python模块的方法
你完全可以直接在packages_to_install列表里声明自定义模块,和你预期的写法一致,不需要额外构建自定义镜像,根据你的自定义模块存储位置,对应写法如下:
- 自定义模块已发布到私有PyPI源:提前在选用的基础镜像里配置好私有源地址和访问认证,直接把模块名写入
packages_to_install即可,和使用公共开源包的写法没有区别 - 自定义模块托管在Git仓库:直接在列表里传入Git仓库的安装地址,支持指定分支、版本tag、提交哈希,示例:
@component( packages_to_install=[ "git+https://你的私有Git仓库域名/自定义模块仓库.git@v1.2.0#egg=my-custom-python-module", "google-cloud-bigquery", "xgboost", "pandas", "sklearn", "joblib", "pyarrow" ], base_image="python:3.9", output_component_file="output_component/create_xgb_model_xgboost.yaml" )
- 自定义模块是本地打包好的whl、源码压缩包:先把安装包上传到Vertex AI运行环境可访问的存储服务(比如GCS),把包的可直连访问地址写入
packages_to_install即可,示例:
packages_to_install=[ "https://你的存储服务地址/bucket路径/my_custom_module-0.1.0-py3-none-any.whl", "google-cloud-bigquery", "xgboost", "pandas", "sklearn", "joblib", "pyarrow" ]
注意事项:如果自定义模块存放在需要权限校验的私有地址,要提前给Vertex AI流水线运行使用的服务账号开通对应地址的访问权限,否则会出现安装时拉取包失败的问题。
内容的提问来源于stack exchange,提问作者rajeshnair
相关产品推荐
相关产品推荐

