在 Amazon SageMaker Studio 中安装外部库和内核
Amazon SageMaker Studio 笔记本已经安装了多个映像。这些映像包含内核和 Python 软件包,包括:scikit-learn、Pandas、NumPy、TensorFlow、PyTorch 和 MXNet。您也可以安装自己的包含所选软件包和内核的映像。有关安装您自己的映像的更多信息,请参阅 自带 SageMaker 映像。
Amazon SageMaker Studio 笔记本中的不同 Jupyter 内核是独立的 conda 环境。有关 conda 环境的信息,请参阅管理环境
软件包安装工具
从终端安装 Python 软件包时使用的方法因映像不同而异。Studio 支持以下软件包安装工具:
-
笔记本 – 支持以下命令。如果下面的一条命令对映像不起作用,请尝试另一条命令。
-
%conda install
-
%pip install
-
-
Jupyter 终端 – 您可以直接使用 pip 和 conda 安装软件包。您也可以使用
apt-get install
从终端安装系统软件包。
注意
我们不建议使用 pip install -u
或 pip install
--user
,因为这些命令会在用户的 Amazon EFS 卷上安装软件包,并且可能会阻止 JupyterServer 应用程序的重启。可以改用生命周期配置在应用程序重启时重新安装所需的软件包,如 使用生命周期配置安装软件包 中所示。
我们建议使用 %pip
和 %conda
从笔记本中安装软件包,因为这些函数正确考虑了正在使用的活动环境或解释器。有关更多信息,请参阅添加 %pip 和 %conda 魔术函数!pip install
和 !conda install
。
Conda
Conda 是一个开源的软件包管理系统和环境管理系统,可以安装软件包及其依赖项。SageMaker 支持将 conda 与以下两个主要通道之一配合使用:默认通道或 conda-forge 通道。有关更多信息,请参阅 Conda 通道
注意
从 conda-forge 安装软件包最多可能需要 10 分钟时间。计时与 conda 解析依赖关系图的方式有关。
SageMaker 提供的所有环境都能正常运行。用户安装的软件包可能无法正常运行。
Conda 有两种激活环境的方法:conda activate
和 source activate
。有关更多信息,请参阅管理环境
支持的 conda 操作
-
在单个环境中
conda install
软件包 -
在所有环境中
conda install
软件包 -
从主 conda 存储库安装软件包
-
从 conda-forge 安装软件包
-
更改 conda 安装位置以使用 Amazon EBS
-
支持
conda activate
和source activate
Pip
Pip 是用于安装和管理 Python 软件包的工具。默认情况下,Pip 在 Python 软件包索引 (PyPI) 上搜索软件包。与 conda 不同,Pip 没有内置的环境支持。因此,Pip 在处理依赖本机库或系统库的软件包时,不如 conda 那么彻底。Pip 可以用来在 Conda 环境中安装软件包。您可以将替代软件包存储库与 Pip 一起使用,而不是 PyPI。
支持的 Pip 操作
-
使用 Pip 在没有活动 conda 环境的情况下安装软件包
-
使用 Pip 在 conda 环境中安装软件包
-
使用 Pip 在所有 conda 环境中安装软件包
-
更改 Pip 安装位置以使用 Amazon EBS
-
使用 Pip 安装软件包时使用替代存储库
不支持
SageMaker 旨在支持尽可能多的软件包安装操作。但是,如果软件包是由 SageMaker 安装的,并且您对这些软件包执行以下操作,则可能会导致环境不稳定:
-
卸载
-
降级
-
升级
由于网络条件或配置的潜在问题,或者 conda 和 PyPi 是否可用,软件包可能无法在固定或确定的时间内安装。
注意
尝试在依赖关系不兼容的环境中安装软件包可能会导致安装失败。如果出现问题,您可以联系库维护者以更新软件包依赖关系。修改环境(例如删除或更新现有软件包)时,可能会导致该环境不稳定。
使用生命周期配置安装软件包
在 Studio 实例的 Amazon EBS 卷上安装自定义映像和内核,以便在停止和重启笔记本时,这些映像和内核会持续存在,而且 SageMaker 不会更新您安装的任何外部库。为此,请使用生命周期配置,其中包括创建笔记本 (on-create)
) 时运行的脚本和每次重启笔记本 (on-start
) 时运行的脚本。有关在 Studio 中使用生命周期配置的更多信息,请参阅 在 Amazon SageMaker Studio 中使用生命周期配置。有关生命周期配置脚本的示例,请参阅 SageMaker Studio 生命周期配置示例