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
참고
'devlog > Python' 카테고리의 다른 글
직렬화(Serialize), 역직렬화(Deserialize), 마샬링(Marshalling) (0) | 2021.09.07 |
---|---|
공간정보 분석 - Part 2. 가상환경 구축 및 데이터베이스 설치 (Mac OS) (0) | 2021.06.19 |
공간정보 분석 - Part 1. 관련 라이브러리 소개 (0) | 2021.06.19 |
Installation Notes (0) | 2017.02.25 |