본문 바로가기

Python

Anaconda를 활용한 가상환경 만들기

Anaconda

아나콘다(Anaconda) 는 수학과 과학 분야에서 사용되는 여러 패키지들을 묶어 놓은 파이썬 배포판으로서 SciPy, Numpy, Matplotlib, Pandas 등을 비롯한 많은 패키지들을 포함하고 있습니다. 특히 최근에 데이터 사이언스와 머신 러닝 분야에서 파이썬을 사용하기 위해 기본적으로 설치하는 배포판이 되어왔습니다.

최근에 머신러닝 관련 프로젝트를 진행하면서 패키지 간의 의존성 문제 때문에 약간 골치 아팠던 경험이 있는데요. 아나콘다 가상환경을 통해 이를 해결할 수 있었습니다. 가상환경은 말 그대로 가상의 환경을 의미하는데요. 머신러닝 프로젝트를 진행할 때는 python 버전 관리 와 패키지 충돌 방지를 위해 프로젝트 별로 각각의 독립된 가상환경을 만들고 이 환경에서 개발을 하는 것이 좋습니다.

1. 아나콘다 가상환경 생성 및 실행하기

  • 먼저 가상환경을 생성하고 실행하는 방법 부터 알아봅시다.
  • conda create 명령어로 가상환경을 만들 수 있습니다.

1.1 아나콘다 가상환경 생성하기

  • -n 뒤에 본인이 원하는 가상환경 이름을 정할 수 있습니다.
  • 설정하고 싶은 python version도 정할 수 있습니다.
  • 프로젝트를 대표할 수 있는 이름이면 좋습니다.
conda create -n (project_name) python==3.7

 

  • 존재하는 가상환경 리스트 확인
conda env list

1.2 아나콘다 가상환경 실행하기

  • conda activate (가상환경 이름)을 통해 가상환경을 실행할 수 있습니다.
  • 가상환경을 실행하면 쉘 명령창 앞 부분이 (base)에서 (project_name)으로 바뀐 것을 확인할 수 있습니다.
conda activate (project_name)

2. 아나콘다 가상환경에 패키지 설치하기

아나콘다 가상환경을 구축할 때 아나콘다 공식 블로그 - Conda 환경에서 Pip 사용을 읽어보면 지켜야할 몇가지 원칙을 언급하고 있습니다. conda와 유사하게 패키지를 관리하는 도구인 pip가 있는데요. conda와 pip을 한번에 사용할 때 가상환경이 훼손될 수 있습니다. 아나콘다 가상환경은 conda가 설치하지 않은 패키지를 제어하는 능력이 제한되어 있습니다. 즉 pip로 변경된 사항을 conda는 인식하지 못합니다.

conda에서 관장하고 있는 패키지를 설치하는 것은 머신러닝을 위한 가상환경을 구축하는데 안전한 방법입니다. 하지만 PyPI에서만 사용할 수 있는 패키지들이 존재할 수 있는데요. conda 관할의 패키지를 모두 설치 후 pip 을 사용하는 것이 안전한 방법입니다. 아나콘다 가상환경을 구축할 때 아래와 같은 순서로 구축해야 합니다.

  • 1. 가능한 많은 패키지를 conda install -c [채널명] [패키지명] 로 설치한다.
  • 2. conda install 로 설치가 되지 않는 패키지는 pip install 을 사용한다.

2.1 conda install

  • conda install 명령어를 통해 conda가 제어하는 패키지를 다운받을 수 있습니다.
  • arguments들에 대해서 간략하게 설명하면 다음과 같습니다.
    • -y : 물어보는 질문에 yes 라고 하겠다.
    • -c : 패키지를 설치할 채널
  • -c pytorch 를 통해 pytorch channel에서 pytorch, torchvision, cudatoolkit을 다운받아보겠습니다.
conda install -y pytorch=1.4.0 torchvision=0.5.0 cudatoolkit=10.0 -c pytorch 

 

  • 이번에는 conda-forge channel 에서 패키지를 다운받아 보겠습니다.
  • -c conda-forge 를 통해 x264, ffmpeg 를 다운받아 보겠습니다.
conda install -y x264=='1!152.20180717' ffmpeg=4.0.2 -c conda-forge

2.2 pip install

  • pip install 명령어를 통해 pip 이 제어하는 패키지를 다운받을 수 있습니다.
  • opencv-python, ffmpeg-python, scikit-image 패키지를 다운받아보겠습니다.
pip install opencv-python==4.1.2.30 ffmpeg-python==0.2.0 scikit-image==0.16.2

2.3 패키지 리스트 출력

  • conda list 명령어를 사용하면 설치된 패키지 목록을 출력할 수 있습니다.
  • 우측에 Channel 열을 보면 패키지를 설치한 채널을 확인할 수 있습니다.
conda list

  • pip list 명령어를 사용하면 pip이 제어하는 패키지목록을 출력할 수 있습니다.
pip list

3. 가상환경 내보내기

  • 가상환경을 .yml 파일로 만들어서 내보낼 수 있습니다.
conda env export -n (project_name) > environment_project_name.yml

 

4. 가상환경 .yml 로 부터 만들기

  • .yaml 파일에서 미리 저장해 둔 가상환경 설정을 그대로 가져와서 다른 이름의 동일한 가상환경을 만들 수 있습니다.
conda env create -n (project_name_copy) -f environment_project_name.yml

5. 가상환경 종료하기

  • 가상환경을 종료할 때는 가상환경 이름을 입력해줄 필요가 없습니다.
  • 아래의 명령어를 실행하고 나면 bash 창이 (project_name)에서 (base)로 돌아온 것을 확인할 수 있습니다.
conda deactivate

6. 가상환경 제거하기

  • 가상환경을 제거하려면 해당 가상환경에서 나간 후에 제거해야합니다.
conda remove --name (project_name) --all

'Python' 카테고리의 다른 글

virtualenv를 활용한 가상환경 만들기  (0) 2021.10.27
MySQL과 Flask API를 연동하기  (0) 2021.10.26
Flask를 설치하고 간단한 API 만들기  (0) 2021.10.26