为什么当我在本地 运行 我的笔记本时可以导入 LambdaStep,但当我在 Sagemaker studio 中 运行 时却不能?

Why is it that I can import LambdaStep when I run my notebook locally but not when I run it in Sagemaker studio?

当我可以在本地 运行 时,我一直在努力 运行 在 Sagemaker studio 的 Jupyter notebook 中 运行 这个代码片段。我之前导入了 Sagemaker。我可以顺利导入 Sagemaker 并且我之前 pip 安装了它。

from sagemaker.workflow.lambda_step import LambdaStep

这是我尝试 运行 时抛出的错误:

ModuleNotFoundError: No module named 'sagemaker.workflow.lambda_step'

我还尝试了不同的导入方式,例如在调用函数时直接 'from sagemaker.workflow import lambda_step' 或 'sagemaker.workflow.lambda_step.LambdaStep'。这些方法对我也没有帮助。

我也不确定为什么我可以在 Sagemaker studio 中 运行 顺利导入下面的代码片段时却无法导入 LambdaStep:

from sagemaker.workflow.pipeline import Pipeline

我不确定如何解决这个问题,如果有人能帮助我,我将不胜感激!

奇怪的是,我的问题在我再次安装 sagemaker 后解决了,但是使用了这个代码片段

!pip install -U sagemaker

在发布问题时,sagemaker.workflow.lambda_step 非常新。最有可能的是,OP 的 SageMaker Studio 环境已经有一段时间没有更新了(这里是 update instructions). Lambda steps were only released on SageMaker Python SDK 2.51,从以前的 SDK 版本导入会失败。

如果不更新内核,其中的所有包都将保留内核启动时的版本。一种可能的解决方法是使用 pip install -U.

强制更新