머신러닝&딥러닝/Python

[Jupyter notebook] 아나콘다 가상 환경 생성 및 활용

e냥냥 2022. 5. 10. 12:58
728x90

파이썬을 사용하면서 여러 패키지들을 설치하다보면 어느 순간 에러가 뜨는 경우가 생기게 됩니다. 또 다양한 프로젝트들을 진행함에 따라 사용하는 패키지들의 버전이 달라지게 되는데 이때 서로 의존하는 버전이 달라지면서 충돌하는 경우가 종종 발생합니다. 그런 경우 패키지를 삭제하고 재설치하는 경우가 생기게 되는데 이런 버전 문제를 막기 위해 가상환경을 사용하게 됩니다. 

 

python과 anaconda를 설치하고 Anaconda Prompt를 키면 아래와 같은 첫 화면을 보시게 될겁니다. 가장 기본은 base로 가상환경을 설정해서 attach하게 되면 해당 부분이 변경되게 됩니다.

1. 아나콘다 가상 환경 생성

conda create -n XAI python=3.6 anaconda

설치하고자 하는 python 버전과 이름으로(XAI) 아나콘다 가상환경을 생성합니다. 저는 XAI 공부를 위해 가상환경을 새로 생성할 것이라 XAI라고 명명하였습니다. 이때 맨 뒤의 anaconda는 아나콘다의 기본 패키지가 한 번에 같이 설치됨을 의미합니다.

2. 가상환경 활성화

생성이 완료되었다면 가상환경을 활성화 해봅시다. 기본 base 였던 부분이 XAI로 변경되었습니다.

# windows
conda activate XAI

# linux 또는 mac
source activate XAI

 

생성한 가상환경을 삭제할 경우엔 remove 하여 삭제할 수 있고, 비활성화 할 수도 있습니다. 비활성화하게 되면 처음의 base로 돌아갑니다.

# 가상환경 삭제
conda remove --name XAI--all

# windows 가상환경 비활성화
conda deactivate

# linux 또는 mac 가상환경 비활성화
source deactivate

3. 가상환경에 jupyter notebook 설치

pip install jupyter notebook
pip install ipykernel

jupyter notebook이 설치 되어 있지 않다면 설치를 완료해줍니다. jupyter notebook이 설치될 때 ipykernel이 자동으로 받아지지만 설치되지 않았다면 따로 install해줍니다.

4. 가상환경에 kernel 연결

python -m ipykernel install --user --name XAI --display-name XAI

XAI 가상환경을 jupyter notebook에 연결할 때 notebook에 보이는 이름을 --display-name 뒤에 지정할 수 있습니다. 저는 헷갈리지 않기 위해 동일한 이름을 사용하였습니다. 이제 jupyter notebook에서 원하는 가상환경을 손쉽게 적용하여 작업할 수 있습니다!

 

 

더이상 사용하지 않고 필요없는 가상환경을 삭제하지는 않지만 커널에서 보이지 않게 연결을 해제할 수도 있습니다.

jupyter kernelspec uninstall XAI을 하게 되면 XAI라는 커널을 찾을 수 없다는 메세지를 보게 될 겁니다. 이유는 모르겠지만 대문자로 지정한 가상환경 이름이 소문자로 지정되어 있어 jupyter kernelspec uninstall xai 로 입력줘야 합니다.

jupyter kernelspce list

jupyter kernelspec uninstall xai

5. 그외 활용

  1) 설치된 가상환경 리스트 출력

conda env list

  2) 패키지 설치/삭제

conda install 패키지명

  패키지를 설치하다보면 채널관련 에러가 발생하는데 그때는 conda-forge 채널 패키지로 설치하면 해결됩니다.

conda install -c conda-forge 패키지명

3) 패키지 업데이트

# 아나콘다 파이썬 패키지 전체
conda update --all

# 특정 패키지
conda update 패키지명

4) 패키지 정리

conda clean --all

사용하지 않는 패키지나 캐쉬를 삭제하는 명령어로 잘 사용하지 않으나 주의해서 사용하길 바랍니다.

 

5) 패키지 버전 리스트업

pip list --format=freeze > ./requirements.txt

현재 가상환경에서 사용 중인 패키지들의 버전 리스트가 requirements.txt 파일로 저장됩니다. 

 

6) 가상환경 내보내기

     - .yml 파일로 저장

yml 파일은 Name, 채널, dependencies로 구성되어있고, pip로 추가 설치한 라이브러리 목록, 가상환경 이름까지 모두 저장됩니다. 

conda env export -n 가상환경명 > XAI.yml

     - .tar 파일로 저장

인터넷이 연결된 환경이라면 yml 파일을 사용해도 되지만 인터넷이 안되는 오프라인 환경에서는 사용할 수 없기 때문에 tar 파일로 압축해야합니다. 압축할 XAI 가상환경을 test.tar.gz 이름의 파일로 압축합니다.

tar cfvz test.tar.gz XAI

c : 새로운 tar 파일 생성

f : 파일 이름 지정

v : 압축시 진행률 표시

z : gzip 압축 및 해제

7) 가상환경 불러오기

     - .yaml 파일

conda env create -n NEW_NAME --file ./XAI.yml
conda activate NEW_NAME

기존에 설치된 XAI 환경이 존재하기 때문에 NEW_NAME 라는 이름으로 새로운 가상환경 이름으로 복제 하였습니다.

 

     - .tar 파일

tar xvf test.tar.gz

x : 압축 해제

v : 진행률 표시

f :  파일 이름 지정

 

8) 오프라인에서 인스톨 하는 경우

오프라인으로 작업해야하는 경우 conda-pack이라는 패키지를 활용할 수 있습니다. conda pack은 가상환경 자체를 추출하게 되는데 파일은 크게 되지만 설치하는 시간이 단축되고 설치 과정에서 패키지 버전을 기준으로 설치하는 방식보다 충돌 문제가 적어지고 설치 과정이 쉬워집니다.

 

먼저 conda-pack 패키지 설치하고 아래의 방법으로 가상환경을 복사/붙여넣습니다. 가상환경을 복제하게 되면 현재 위치에 XAI.tar.gz 라는 이름의 파일이 생성될 것입니다. 가상환경을 붙여넣을 폴더를 생성해야하는데 기존의 가상환경들이 생성되어 있는 베이스주소에 XAI2라는 폴더(새로운가상환경)를 생성한 후 붙여넣으면 복제가 완료됩니다.

# 1. conda pack 인스톨
pip install conda-pack

# 2. 가상환경 복제
conda pack -n XAI -o XAI.tar.gz

# 3. 가상환경 폴더 생성
conda info --envs
cd 가상환경베이스주소

mkdir -p XAI2

# 4. 가상환경 붙여넣기
tar -xzf 복제파일주소/XAI.tar.gz -C XAI2

9) pip upgrade

     - Window 환경인 경우

python -m pip install --upgrade pip

     - Linux 환경인 경우

pip install --upgrade pip

 

 

 

 

 

혼자 공부하면서 정리하는 개념으로 작성하여 많이 부족합니다 ㅠ_ㅠ
틀린부분이나 첨언해주실 내용 있으시면 댓글 부탁드려요 ^^

728x90
loading