如何在 Amazon SageMaker 筆記本執行個體上將 Python 套件安裝到 Conda 環境?

2 分的閱讀內容
0

我想將 Python 套件安裝到特定的 Conda 環境中、檢查安裝的套件版本,或是建立持久性 Conda 環境。

解決方法

將 Python 套件安裝到特定的 Conda 環境

如果使用 pip 或 Conda 來在終端安裝 Python 程式庫,而未指定正確的 Conda 環境,則將該 Python 套件匯入正在執行的筆記本時,您會收到 ModuleNotFoundError 錯誤訊息。這是因為您沒有將 Python 套件安裝到正確的 Conda 環境。若要將 Python 套件安裝到正確的 Conda 環境,請先啟用環境,再從終端執行 pip installconda install

例如:

sh-4.2$ source activate python3
(python3) sh-4.2$ pip install theano
(python3) sh-4.2$ source deactivate
(JupyterSystemEnv) sh-4.2$

若要在筆記本儲存格中執行此命令,請在命令的開頭加上一個驚嘆號 ("!")。這會強制該命令以筆記本中的 shell 命令執行,並確保該套件安裝在當前的 Jupyter 核心中。

例如:

import sys
!conda install -y --prefix {sys.prefix} theano

**注意:**在筆記本儲存格中執行 conda install 時,您無法輸入互動式回應。若要使用 Conda 在筆記本儲存格中安裝套件,您必須明確地傳遞 -y。否則,該命令會停止並等待使用者確認。

或者您可以使用 pip install

import sys
!{sys.executable} -m pip install theano

pip 有時可能無法安裝套件的某些相依性。發生此情況時,請使用 Conda 而非 pip 來安裝套件。Conda 會在安裝套件前驗證是否已滿足所有必要元件。如需詳細資訊,請參閱 Conda 文件中的瞭解 Conda 和 Pip

其他實用命令

若要查看預先建置的 Conda 環境,請在筆記本執行個體終端中執行下列其中一個命令:

$ conda env list
$ conda info --envs

範例輸出:

# conda environments:
#
base                     /home/ec2-user/anaconda3
JupyterSystemEnv      *  /home/ec2-user/anaconda3/envs/JupyterSystemEnv
R                        /home/ec2-user/anaconda3/envs/R
amazonei_mxnet_p27       /home/ec2-user/anaconda3/envs/amazonei_mxnet_p27
amazonei_mxnet_p36       /home/ec2-user/anaconda3/envs/amazonei_mxnet_p36
amazonei_tensorflow_p27     /home/ec2-user/anaconda3/envs/amazonei_tensorflow_p27
amazonei_tensorflow_p36     /home/ec2-user/anaconda3/envs/amazonei_tensorflow_p36
chainer_p27              /home/ec2-user/anaconda3/envs/chainer_p27
chainer_p36              /home/ec2-user/anaconda3/envs/chainer_p36
mxnet_p27                /home/ec2-user/anaconda3/envs/mxnet_p27
mxnet_p36                /home/ec2-user/anaconda3/envs/mxnet_p36
python2                  /home/ec2-user/anaconda3/envs/python2
python3                  /home/ec2-user/anaconda3/envs/python3
pytorch_p27              /home/ec2-user/anaconda3/envs/pytorch_p27
pytorch_p36              /home/ec2-user/anaconda3/envs/pytorch_p36
tensorflow_p27           /home/ec2-user/anaconda3/envs/tensorflow_p27
tensorflow_p36           /home/ec2-user/anaconda3/envs/tensorflow_p36

若要查看筆記本上安裝的核心,請執行下列命令:

sh-4.2$ ipython kernelspec list

若要檢查 Conda 環境中安裝的套件版本,請在筆記本執行個體終端中執行下列命令:

(python3) sh-4.2$ pip freeze | grep pandas

或是使用下列命令檢查筆記本儲存格中的套件版本:

import pandas as pd
pd.__version__

建立持久性 Conda 環境

當您停止筆記本時,SageMaker 會終止筆記本的 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體。安裝在 Conda 環境中的套件不會在工作階段之間持續存在。/home/ec2-user/SageMaker 目錄是在筆記本執行個體工作階段之間持續存在的唯一路徑。這是筆記本 Amazon Elastic Block Store (Amazon EBS) 磁碟區的目錄。如果您希望程式庫在工作階段之間持續存在,請參閱如果嘗試安裝程式庫時生命週期組態逾時,如何確定手動安裝的程式庫仍然存在於 Amazon SageMaker 中?


相關資訊

在筆記本執行個體中安裝外部程式庫和核心

使用生命週期組態指令碼自訂筆記本執行個體

AWS 官方
AWS 官方已更新 2 年前