Python 패키지를 Amazon SageMaker 노트북 인스턴스의 Conda 환경에 설치하려면 어떻게 해야 하나요?

최종 업데이트 날짜: 2020년 10월 8일

Python 패키지를 특정 Conda 환경에 설치하거나 설치된 패키지 버전을 확인하거나 지속적인 Conda 환경을 만들고 싶습니다.

해결 방법

특정 Conda 환경에 Python 패키지 설치

올바른 Conda 환경을 지정하지 않고 pip 또는 Conda를 사용하여 터미널에 Python 라이브러리를 설치하면 실행 중인 노트북으로 해당 Python 패키지를 가져올 때 ModuleNotFoundError 오류가 발생합니다. 이는 올바른 Conda 환경에 Python 패키지를 설치하지 않기 때문입니다. 올바른 Conda 환경에서 Python 패키지를 설치하려면 터미널에서 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$

노트북 셀에서 이 명령을 실행하려면 명령 시작 부분에 느낌표("!")를 표시합니다. 이렇게 하면 노트북에서 해당 명령이 셸 명령으로 실행되며 패키지를 현재 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이 패키지의 종속성 중 일부를 설치하지 못할 수도 있습니다. 이 경우 pip 대신 Conda를 사용하여 패키지를 설치합니다. Conda는 패키지를 설치하기 전에 필요한 모든 구성 요소가 충족되었는지 확인합니다. 자세한 내용은 Conda 설명서의 Conda와 pip 이해하기(Understanding Conda and 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에서 유지되도록 하려면 어떻게 해야 합니까?를 참조하세요.