Skip to content

Conda #

Find similar titles

4회 업데이트 됨.

Edit
  • 최초 작성자
    jwseo
  • 최근 업데이트
    jwseo

Structured data

Category
Programming

Conda #

Image

그림1 Conda

출처: https://docs.conda.io/projects/conda/en/stable/index.html

개념 #

Conda는 Windows, macOS 및 Linux에서 실행되는 오픈 소스 패키지 관리 시스템 및 환경 관리 시스템이다. Conda를 사용하면 패키지와 해당 종속성을 간편하고 빠르게 설치, 실행 및 업데이트할 수 있다. 가상 환경을 생성하고 관리하여 서로 다른 프로젝트 간의 패키지 충돌을 방지할 수 있다.

Conda는 Anaconda와 Miniconda로 나뉘며, Anaconda와 Miniconda는 모두 Conda를 기반으로 하여 패키지 관리 및 가상 환경 관리 기능을 제공한다. 초기에는 Python 프로그램용으로 만들어졌지만, 현재는 모든 언어용 소프트웨어를 패키징하고 배포할 수 있다.

필요성 #

우선 Conda의 필요성을 논의하기 위해서는 가상 환경(Virtual Environment)의 필요성에 대해 이해할 필요가 있다. 이를 이해하기 위해 아래의 예시를 살펴보자.

Image

그림2 별도의 프로젝트 환경

위의 그림2처럼, Project A에서는 Python 3.8을 사용하고 있고, Project B에서는 Python 3.11을 사용하고 있다. 현재 로컬 환경에는 Python 3.8이 설치되어 있다. Project A에서 작업을 진행할 때는 로컬 환경을 그대로 사용할 수 있겠지만, 만약 Project B를 진행해야 한다면 어떨까? 이 경우에는 Python 버전을 업그레이드하여 Python 3.11을 설치해야 할 것이다.

하지만 개발 과정에서는 여러 프로젝트를 동시에 진행해야 하는 경우가 많다. 만약 Project B를 위해 Python 3.11을 설치했는데, 다시 Project A를 진행하기 위해서는 Python 3.8로 다운그레이드를 해야 하는 귀찮은 상황이 벌어진다. 이처럼 프로젝트를 전환할 때마다 Python 버전을 재설치하는 것은 상당히 비효율적이다. 또한, Python 버전뿐만 아니라 프로젝트에서 사용하는 라이브러리의 버전도 다를 수 있다. 같은 라이브러리라도 프로젝트마다 다른 버전을 필요로 할 수 있다.

따라서 각각의 프로젝트에 맞는, 격리된 가상 환경을 사용하는 것이 필수적이다. 가상 환경은 이런 경우에, 프로젝트별로 Python 버전 및 필요한 라이브러리 버전을 독립적으로 관리할 수 있게 해준다. 이를 통해 프로젝트 간의 충돌 없이 원활한 버전 관리가 가능하다. 가상 환경에는 Conda 외에도 venv, virtualenv, pyenv 등이 있으나, 본 문서에서는 Conda만을 다룬다.

Anaconda vs Miniconda #

그렇다면 어떤 경우에 Anaconda를 사용해야 하고, 어떤 경우에 Miniconda를 사용해야 할까? Conda 공식 문서에 따르면 다음과 같이 권고하고 있다.

  • Anaconda

    • Conda 또는 Python을 처음 사용하는 경우 권장
    • Python과 1,500개 이상의 패키지가 한 번에 자동으로 설치되는 편리함
    • 시간과 디스크 공간의 여유가 있는 경우 : 몇 분의 시간 및 3GB 정도의 용량 확보 필요
    • 사용하고자 하는 각 패키지를 개별적으로 설치하고 싶지 않을 경우
    • 상호 운용성과 유용성을 위해 선별되고 심사된 일련의 패키지를 사용하고 싶을 경우
  • Miniconda

    • 개별적으로 사용하려는 각 패키지를 설치해도 괜찮은 경우
    • 한 번에 1,500개가 넘는 패키지를 설치할 시간이나 디스크 공간이 없는 경우
    • Python 및 Conda 명령에 빠르게 액세스한 뒤 다른 프로그램을 정리하고 싶은 경우

요약하면, Anaconda와 Miniconda 모두 공통으로 Conda를 기반으로 한 패키지 관리와 가상환경을 제공하며, 개발자와 데이터 과학자들에게 편리한 환경을 제공하는 데 사용된다. Anaconda는 모든 것을 포괄적으로 제공하며, Miniconda는 필요에 따라 구성할 수 있는 경량 설치를 제공한다.

설치 및 사용법 #

Anaconda와 Miniconda는 Windows, Mac, Linux에서 모두 사용이 가능하다. 본 문서에서는 Mac의 zsh셸에서 Miniconda를 설치하고 사용해보는 경우만을 다룬다. homebrew가 설치되어있다고 가정한다. 하단의 명령어를 통해 Miniconda를 설치하고, 가상환경을 추가, 조회, 활성화, 비활성화, 삭제, 버전 업데이트 작업까지 진행해보도록 한다.

  1. Miniconda 설치

    brew install miniconda
    

    homebrew가 설치되어있지 않을 경우에는, https://docs.conda.io/en/latest/miniconda.html 에서 Miniconda를 설치할 수 있다. Miniconda 설치 시 Conda가 자동으로 환경 변수를 설정해주므로, 환경 변수 세팅에 대한 부분은 고려하지 않아도 된다.

  2. zsh쉘에 Conda 초기화 스크립트 추가

    conda init zsh
    
  3. ~/.zshrc 파일을 다시 로드하여 변경 사항을 즉시 적용

    source ~/.zshrc
    
  4. 가상환경 생성

    conda create -n <가상환경명>
    

    또는 Python 버전을 명시하고 싶다면,

    conda create -n <가상환경명> python=<Python 버전>
    

    가상환경명이 venv고 Python 버전이 3.11이라면,

    conda create -n venv python=3.11
    
  5. 가상환경 조회

    conda info --envs
    
  6. 가상환경 활성화

    conda activate venv
    
  7. 가상환경 비활성화

    conda deactivate
    
  8. 가상환경 삭제

    conda remove -n venv --all
    

    가상환경을 삭제할 경우, 비활성화가 선행되어야만 함에 유의한다.

  9. Miniconda 버전 업데이트

    conda update conda
    

이 외의 명령어에 대해서는 Conda 공식문서 참조를 권장

Reference #

0.0.1_20230725_7_v68