Developer/개발 환경 구축

[환경구축][Conda] 가상환경 생성/제거/(비)활성화/리스트 보기

마크 주쿼버그 2023. 5. 9. 14:41

Summary

- 가상환경 관리 프로그램인 conda를 사용하면서 가장 많이 사용하는 명령어이자 기본인 명령어들을 정리해본다.

- 포함된 내용은 '가상환경 생성', '가상환경 제거', '가상환경 (비)활성화', '생성한 가상환경 리스트 보기'로 4가지 섹션으로 구성되었다.

- 참고로 이 글은 가장 많이 사용하는 코드를 아카이빙 하기 위한 목적으로 작성한 글이므로, conda가 무엇인지, 왜 사용해야 하는지에 대해서는 필요 이상으로 구체적인 정리는 수행하지 않았다. 

 


Contents

0. 개요

파이썬 코드를 짜다보면 상황에 따라 동일한 패키지의 필요한 버전이 다른 경우가 있다. 파이썬 언어 자체도 어떤 상황에서는 3.7이 필요하기도 하고, 어떤 상황에서는 3.8 이상이 필요하기도 하다. 이런 각각의 경우마다 매번 버전을 바꾼다면 패키지 버전을 체계적으로 관리하기 어렵고 점차 꼬여서 환경 세팅에 너무 많은 시간을 할애해야 하는 문제가 생긴다.

따라서 가상환경이라는 별도의 독립된 공간을 제공하여 이런 호환성 문제를 해결할 수 있도록 한다. 그 중 많이 사용하는 가상환경 관리 프로그램이 Anaconda라고 할 수 있다.

 

가상환경은 생성 및 활성화 과정을 거쳐서 사용할 수 있게 되고, 더 이상 필요없어진 가상환경은 (활성화 된 상태라면)비활성화 및 삭제 과정을 거쳐 제거할 수 있다. 이 과정에 필요한 코드들을 함께 알아본다.


1. 가상환경 생성

가상환경 생성을 위한 명령어와 코드 예시는 아래와 같다.

* 명령어

conda create -n "가상환경이름" python=(파이썬버전)

* 코드 예시

# conda create -n "가상환경이름" python=(파이썬버전)
conda create -n "KoBERT" python=3.7

나의 경우에는 KoBERT 라이브러리 설치 시 패키지 충돌 문제가 많이 발생하는 듯 해서 'KoBERT'라는 별도의 가상환경을 만들어주었다.

위와 같이 파이썬 버전을 지정해서 생성해주면 pip, wheel 등 기본적인 패키지도 함께 설치된다.

 

* 실행 결과

Collecting package metadata (current_repodata.json): done
Solving environment: done

## Package Plan ##

  environment location: C:\Users\etoil\anaconda3\envs\KoBERT

  added / updated specs:
    - python=3.7


The following packages will be downloaded:

    package                    |            build
    ---------------------------|-----------------
    certifi-2022.12.7          |   py37haa95532_0         149 KB
    pip-22.3.1                 |   py37haa95532_0         2.7 MB
    python-3.7.16              |       h6244533_0        17.2 MB
    setuptools-65.6.3          |   py37haa95532_0         1.1 MB
    wheel-0.38.4               |   py37haa95532_0          82 KB
    wincertstore-0.2           |   py37haa95532_2          15 KB
    ------------------------------------------------------------
                                           Total:        21.3 MB

The following NEW packages will be INSTALLED:

  ca-certificates    pkgs/main/win-64::ca-certificates-2023.01.10-haa95532_0
  certifi            pkgs/main/win-64::certifi-2022.12.7-py37haa95532_0
  openssl            pkgs/main/win-64::openssl-1.1.1t-h2bbff1b_0
  pip                pkgs/main/win-64::pip-22.3.1-py37haa95532_0
  python             pkgs/main/win-64::python-3.7.16-h6244533_0
  setuptools         pkgs/main/win-64::setuptools-65.6.3-py37haa95532_0
  sqlite             pkgs/main/win-64::sqlite-3.41.2-h2bbff1b_0
  vc                 pkgs/main/win-64::vc-14.2-h21ff451_1
  vs2015_runtime     pkgs/main/win-64::vs2015_runtime-14.27.29016-h5e58377_2
  wheel              pkgs/main/win-64::wheel-0.38.4-py37haa95532_0
  wincertstore       pkgs/main/win-64::wincertstore-0.2-py37haa95532_2


Proceed ([y]/n)? y


Downloading and Extracting Packages

Preparing transaction: done
Verifying transaction: done
Executing transaction: done
#
# To activate this environment, use
#
#     $ conda activate KoBERT
#
# To deactivate an active environment, use
#
#     $ conda deactivate

2. 가상환경 제거

생성한 가상환경이 더 이상 필요없어진 경우 아래와 같이 명령어를 입력한다

* 명령어

conda remove --name "가상환경명" --all

* 실행 결과

(base) C:\Users\etoil\KoBERT>conda remove --name "test2" --all

Remove all packages in environment C:\Users\etoil\anaconda3\envs\test2:

No packages found in C:\Users\etoil\anaconda3\envs\test2. Continuing environment removal

파이썬 버전을 지정하지 않고 실수로 생성한 가상환경을 제거해주었다.맨 마지막 줄의 경우 별도로 설치된 패키지가 없어 'No packages found ...'과 같은 구문이 뜨는 것을 확인할 수 있다.


3. 가상환경 활성화 및 비활성화

3-1. 활성화

가상환경 활성화는 말 그대로 생성한 가상환경을 실행시키는 작업을 의미한다. 즉, 생성했다고 해서 활성화되는 것이 아니라 코드를 통해 활성화 시켜 가상환경을 열어주어야 한다.

명령어와 실행 결과는 아래와 같다.

* 명령어

conda activate "가상환경명"

* 실행 결과

(base) C:\Users\etoil\KoBERT>conda activate KoBERT

(KoBERT) C:\Users\etoil\KoBERT>

실행 결과를 보면 알 수 있듯이, 가상환경을 활성화시키면 앞에 적힌 태그가 변경되는 것을 알 수 있다.

위 실행 결과에서는 (base)->(KoBERT)로 바뀌었다.

 

 

3-2. 비활성화

활성화했던 가상환경을 끄고 싶거나, 다른 가상환경으로 변경하고자 할 때 가상환경을 비활성화 시켜주어야 한다.

명령어와 실행 결과는 아래와 같다.

* 명령어

conda deactivate

* 실행 결과

(KoBERT) C:\Users\etoil\KoBERT>conda deactivate

(base) C:\Users\etoil\KoBERT>

비활성화는 활성화와 달리 가상환경명을 작성하지 않아도 된다.

활성화 때와 마찬가지로 앞에 적힌 태그가 변경되어 (KoBERT)->(base)로 바뀐 것을 확인할 수 있다.


4. 생성한 가상환경 리스트 보기

생성한 가상환경 리스트를 보기 위해서는 아래와 같은 명령어를 입력해준다. 그러면 내가 지금까지 생성했던 모든 가상환경들을 확인할 수 있다. (아까 생성했던 KoBERT 환경도 보이는 것을 확인할 수 있다)

* 명령어

conda env list

* 실행 결과

생성한 가상환경 리스트

 

 

 


Conclusion

- Anaconda를 이용한 가상환경 생성부터 활성화, 비활성화, 리스트 보기, 제거까지 기본적인 명령어들을 알아보았다.

- 딥러닝이나 머신러닝을 작업하시는 분들이라면 torch, tensorflow 등 구현 환경에 따라 필요한 패키지 버전을 변경하는 일이 잦을 것이다. 따라서 이렇게 가상환경을 활용해보시는 것을 추천드린다.

 

 

이번 포스팅은 이렇게 끝! 그럼 이만~