我想將 Python 套件安裝到特定的 Conda 環境中、檢查安裝的套件版本,或是建立持久性 Conda 環境。
解決方法
將 Python 套件安裝到特定的 Conda 環境
如果使用 pip 或 Conda 來在終端安裝 Python 程式庫,而未指定正確的 Conda 環境,則將該 Python 套件匯入正在執行的筆記本時,您會收到 ModuleNotFoundError 錯誤訊息。這是因為您沒有將 Python 套件安裝到正確的 Conda 環境。若要將 Python 套件安裝到正確的 Conda 環境,請先啟用環境,再從終端執行 pip install 或 conda 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 中?
相關資訊
在筆記本執行個體中安裝外部程式庫和核心
使用生命週期組態指令碼自訂筆記本執行個體