본문 바로가기

devlog/Python

conda 기본 사용 가이드

Conda

개요

Windows, macOS, Linux 에서 Python, R, Ruby, Lua, Scala, Java, JavaScript, C/ C++, FORTRAN 등의 다양한 언어에서 의존성, 패키지 및 환경을 관리하기 위한 패키지 관리 시스템

Conda vs pip vs virtualenv 비교

conda는 패키지 관리를 위한 pip와 가상환경 관리를 위한 virtualenv를 합쳐놓은 기능을 수행한다고 볼 수 있습니다.

Conda vs pip vs virtualenv

Task Conda package and environment manager command Pip package manager command Virtualenv environment manager command
Install a package conda install $PACKAGE_NAME pip install $PACKAGE_NAME X
Update a package conda update --name $ENVIRONMENT_NAME $PACKAGE_NAME pip install --upgrade $PACKAGE_NAME X
Update package manager conda update conda Linux/macOS: pip install -U pip 
Win: python -m pip install -U pip
X
Uninstall a package conda remove --name $ENVIRONMENT_NAME $PACKAGE_NAME pip uninstall $PACKAGE_NAME X
Create an environment conda create --name $ENVIRONMENT_NAME python X cd $ENV_BASE_DIR; virtualenv $ENVIRONMENT_NAME
Activate an environment conda activate $ENVIRONMENT_NAME* X source $ENV_BASE_DIR/$ENVIRONMENT_NAME/bin/activate
Deactivate an environment conda deactivate X deactivate
Search available packages conda search $SEARCH_TERM pip search $SEARCH_TERM X
Install package from specific source conda install --channel $URL $PACKAGE_NAME pip install --index-url $URL $PACKAGE_NAME X
List installed packages conda list --name $ENVIRONMENT_NAME pip list X
Create requirements file conda list --export pip freeze X
List all environments conda info --envs X Install virtualenv wrapper, then lsvirtualenv
Install other package manager conda install pip pip install conda X
Install Python conda install python=x.x X X
Update Python conda update python X X

설치

GUI 프로그램

Getting started with Navigator - Anaconda documentation

CLI 프로그램

Installation - Anaconda documentation

본인의 운영체제에 맞게 설치

해당 문서는 CLI 프로그램을 기반으로 작성하였습니다.

환경 관리

conda는 기존 파일, 패키지, 환경들과 상호작용하지 않는 분리된 환경을 생성하게 도와줍니다. anaconda 프로그램을 설치하면 base라는 이름의 기본 환경이 자동생성됩니다. 프로토타입 개발하거나 연습 겸 사용할 때는 base 환경에 패키지를 설치해도 무방합니다. 하지만 conda는 프로그램을 다른 요인에 영향을 받지 않도록 독립적인 환경에서 실행하기 위해 새로운 환경을 생성할 것을 추천합니다.

새로운 환경 생성

  • 기본적인 방법
    • # conda create [--name ENVIRONMENT] conda create -n myenv
  • 특정 버전 패키지를 지정하여 환경을 생성하는 방법
    • # conda create [--name ENVIRONMENT] [package_spec [package_spec ...]]
    • conda create -n myenv python=2.7
  • 일반적으로 많이 쓰는 방법 - 환경 생성 및 패키지 설치
    • conda create -n snowflakes biopython

환경 활성화/비활성화

  • 활성화
  • conda activate myenv
  • 비활성화
  • conda deactivate

환경 조회/삭제

  • 조회
  • # 현재 활성화된 환경에 * 표시
    • conda env list base
      /home/username/Anaconda3 myenv
       /home/username/Anaconda3/envs/myenv snowflakes *
       /home/username/Anaconda3/envs/snowflakes
  • 삭제
    • conda env remove -n myenv

환경 export/Import

  • environment.yml파일로 환경 내보내기
    • # conda env export [-n ENVIROMENT] [-f FILE]
    • conda env export -n geo -f environment-geo.yml
  • environment.yml 파일로 새로운 환경 생성하기
    • conda env create -f environment.yml conda activate geo

파이썬 스위칭

새로운 환경 생성 시 파이썬 버전을 지정하지 않으면 아나콘다의 기본적인 파이썬 버전이 설치됩니다.

# conda 설치 시 기본적으로 base 환경
(base) >python --version
**Python 3.8.5**

# py27 이름의 환경을 생성하고 python2.7을 설치후 py27 환경 활성화
(base) >conda create -n py27 python=2.7
(py27) >conda activate py27
(py27) >python --version
**Python 2.7.15**

# py27 비활성화하여 base환경으로 되돌아감
****(py27) >conda deactivate
(base) >python --version
**Python 3.8.5**

패키지 관리

설치 환경 확인

conda activate myenv

검색

conda search nodejs

설치

conda install nodejs

# 특정 버전의 패키지 설치
conda install nodejs=15.6

조회

conda list | grep nodejs

# on windows cmd
conda list | findstr nodejs

채널 관리

conda에서 채널은 패키지 저장소를 말합니다. 패키지는 원격 채널에서 다운로드됩니다. 패키지를 다운받을 때 기본 채널인 default에서 검색된 패키지를 다운로드합니다. 오픈소스 진영에서 conda 패키지의 채널은 conda-forge를 주로 사용합니다. 서로 다른 채널 간 dependencies 해결 불가 등의 문제가 생길 수 있으므로 coda-forge 채널을 사용하기 위한 설정이 필요합니다.

conda-forge

오픈소스 커뮤니티 주도하에 레시피 모음, 콘다 패키지 관리자를 위한 인프라 및 배포판 구축

채널 설정

  • 채널추가 및 우선순위 설정
  • conda config --add channels conda-forge \
    && conda config --set channel_priority strict \
    && conda config --prepend channels conda-forge

참고

아나콘다 공식문서