突然的导入错误:无法从管道上的“requests.packages.urllib3.contrib”错误导入名称“appengine”

fil*_*ipe 36 kubeflow kubeflow-pipelines google-cloud-vertex-ai vertex-ai-pipeline

我的管道和调度程序运行顺利,没有任何问题。出去吃午饭后,我更改了神经网络运行的纪元数,再次保存 .yaml 文件并将其保留在名为“budgetff”的存储桶中。

之后,一切都停止了。

没有线索

在此输入图像描述

有错误,我对它们是如何出现的一无所知。组件内的代码似乎根本没有启动。我制作了几个不同的组件但没有成功,因为它们在这一步失败了。

如果有帮助,我安装了 kfp --pre 并像这样进行导入

import kfp.v2.dsl, kfp.v2.compiler
from kfp.v2.dsl import Artifact, Dataset, Input, Metrics, Model, Output
Run Code Online (Sandbox Code Playgroud)

kfp-2.0.0-beta.15 - 这是在 VertexAi 上运行的 kfp 版本,我将 Kubeflow 与 @kfp.v2.dsl.components 一起使用。

我试图运行我的管道。强制在调度程序上运行。实在不行,我就在笔记本上试了一下。

Pau*_*aul 36

原因是最新版本requests不支持urllib3 2.0.0。此问题已修复kfp-2.0.0b16请参阅 PR 的更改),因此您可以升级到该版本,也可以创建一个降级的新映像urllib

也许这是由过去几天(2023 年 5 月 1 日和 5 月 4 日)发布的requests-toolbelt和/或版本触发的。urllib3

我通过使用以下 Dockerfile 构建一个新容器来修复此问题(我使用 Python 3.9,但使用您想要的任何内容):

FROM python:3.9

RUN pip install urllib3==1.26.15 requests-toolbelt==0.10.1
Run Code Online (Sandbox Code Playgroud)

我建议使用 Cloud Build构建映像并将其指定为组件的基础映像。


mwt*_*phy 13

我今天遇到了同样的问题,正在摸不着头脑。我发现在组件装饰器中添加参数解决了这个问题appengine-python-standardpackages_to_install

@component(base_image="python:3.7", packages_to_install=["appengine-python-standard",...])
Run Code Online (Sandbox Code Playgroud)

对于上下文,我通过 Vertex 工作台使用 KFP v1.8.20。祈祷吧,它适用于 v2.0.0-beta.15。

  • 这是现在最简单的修复,适用于 python 3.7 和 3.9 (3认同)

Rob*_*per 9

与OP的具体问题无关,但过时的版本twine也会遇到同样的错误。pip install --upgrade twine不会修复它,但这会:

pip install --upgrade twine requests-toolbelt
Run Code Online (Sandbox Code Playgroud)


小智 5

这些问题已在 kfp==1.8.21 和 kfp==2.0.0b16 中修复。