1. Conda란?
- 프로그래밍 언어(특히 Python)의 패키지, 종속성을 관리하기 위한 오픈 소스 패키지 관리 시스템(or Package Manager)과
- 이들이 설치되어 구성되는 (가상)환경을 관리하는 환경 관리 시스템임.
- conda = pip + venv
conda는 사용자에게
여러 버전의 패키지와 그 종속성을 설치하고 전환할 수 있는 기능을 제공하며,
가상 환경을 생성하여 프로젝트별로 독립적인 개발 환경 구축이 가능케 해줌.
package manager란? https://ds31x.tistory.com/335
[Summary] Package Manager
package란 여러 구성요소를 하나로 묶은 것을 가르킨다.os에서는package는 흔히 설치되는 software를 가르키며이들의 경우 여러 의존성이 있을 수 있기 때문에여러 packages가 묶여서 설치되는 경우 일
ds31x.tistory.com
1-1. Conda의 주요 특징:
- 크로스 플랫폼 지원: Windows, macOS, Linux에서 동일한 명령어로 동작하는 시스템.
- 가상 환경 관리: 프로젝트별로 독립된 환경을 만들어 의존성 충돌 방지가 가능한 기능.
- 패키지 관리: 다양한 버전의 소프트웨어 패키지를 설치, 업데이트, 제거할 수 있는 시스템.
- 채널 시스템: 다양한 소스에서 패키지를 가져올 수 있는 유연한 구조.
2. Conda 설치하기
Conda를 사용하기 위해서는 Anaconda 또는 Miniconda를 설치해야 한다.
사실 mamba 와 같은 다른 호환되는 것들도 있긴 함.
2-1. 설치 옵션:
- Anaconda:
- 데이터 과학 작업에 필요한 1,500개 이상의 패키지가 사전 설치된 대규모 배포판.
- 초보자나 데이터 과학자에게 권장되는 선택지.
- Miniconda:
- Conda와 Python, 그리고 몇 가지 필수 패키지만 포함된 최소 설치 버전.
- 디스크 공간을 절약하고 필요한 패키지만 선택적으로 설치하려는 사용자에게 적합한 옵션.
https://ds31x.blogspot.com/2023/07/env-conda-anaconda-and-miniconda.html?view=classic
[Env] conda : Anaconda and Miniconda
Conda는 open-source package and environment management system임. pip처럼 package management system이면서 venv처럼 environment management system임. 참고 ...
ds31x.blogspot.com
2-2. 설치 방법:
- 공식 웹사이트에서 운영체제에 맞는 설치 파일 다운로드 필요.
- Anaconda: https://www.anaconda.com/download/
- Miniconda: https://docs.conda.io/en/latest/miniconda.html
- 다운로드한 설치 파일 실행 후 안내에 따라 설치 진행.
- 설치 완료 후 터미널/명령 프롬프트에서
conda --version
명령어로 설치 확인 가능.
2024.09.12 - [개발환경] - [Conda] miniconda 설치하기: Windows, macOS, WSL
[Conda] miniconda 설치하기: Windows, macOS, WSL
miniconda 설치하기: Windows, macOS, WSLMiniconda는 conda 패키지 관리자의 경량화된 버전.Python 환경을 관리하고 가볍게 시작할 수 있는 가장 좋은 선택 중 하나임. 이 문서에서는Windows에서는 winget,macOS와 W
ds31x.tistory.com
3. 기본 명령어
3-1. 환경 관리
환경 관리는 서로 다른 프로젝트에 대해 독립적인 작업 공간을 만들고 관리하는 과정.
# 환경 생성: 지정된 Python 버전으로 새 환경 생성
conda create -n 환경이름 python=3.9
# 환경 활성화: 생성된 환경으로 전환하여 해당 환경의 패키지 사용 가능
conda activate 환경이름
# 환경 비활성화: 현재 활성화된 환경에서 나와 기본 환경으로 복귀
conda deactivate
# 환경 목록 확인: 시스템에 설치된 모든 Conda 환경 목록 표시
conda env list
# 환경 삭제: 더 이상 필요하지 않은 환경 제거
conda env remove -n 환경이름 # 완전제거는 아님.
conda remove --name 환경이름 --all # 완전 제거임.
# 활성화된 환경 삭제 (먼저 비활성화 필요): 현재 사용 중인 환경은 바로 삭제 불가능
conda deactivate
conda env remove -n 환경이름
3-2. 패키지 관리
패키지 관리는 소프트웨어 라이브러리를 설치, 업데이트, 제거하는 작업.
# 패키지 설치: 지정된 패키지를 현재 환경에 추가
conda install 패키지이름
# 특정 버전 패키지 설치: 패키지의 버전을 지정하여 설치
conda install 패키지이름=1.2.3 # 메이저 버전 일치 (1.2.3 또는 호환되는 최신 버전)
conda install 패키지이름==1.2.3 # 정확한 버전 일치 (오직 1.2.3 버전만 설치)
conda install "패키지이름>=1.2.3" # 1.2.3 이상의 버전 설치 (1.2.3 포함, 그 이상 최신 버전)
conda install "패키지이름>1.2.3" # 1.2.3 초과 버전 설치 (1.2.3 제외, 그 이상 최신 버전)
# 여러 패키지 동시 설치: 한 번에 여러 패키지를 설치하여 시간 절약
conda install 패키지1 패키지2
# 패키지 업데이트: 이미 설치된 패키지를 최신 버전으로 업그레이드
conda update 패키지이름
# 설치된 패키지 목록 확인: 현재 환경에 설치된 모든 패키지 조회
conda list
# 패키지 제거: 더 이상 필요하지 않은 패키지 제거
conda remove 패키지이름
- Conda에서는 버전을 지정하여 설치할 때,
==
(완전일치),>=
(이상) 또는>
(초과) 연산자를 사용할 수 있음.- 이때 중요한 점은 이러한 ==비교 연산자를 사용할 때는 큰따옴표나 작은따옴표로 감싸야 한다==는 점임.
- 이는 쉘이
>
,<
같은 기호를 리다이렉션 연산자로 해석하지 않도록 하기 위한 처리임.
- 예를 들어:
conda install "numpy>=1.20.0"
- 1.20.0 버전 이상의 최신 numpy 설치
conda install "pandas>1.0.0"
- 1.0.0 버전보다 높은 최신 pandas 설치
- 이 외에도 버전 지정에 다음과 같은 표현식을 사용할 수 있음:
<=
(이하): 지정된 버전 이하의 최신 버전<
(미만): 지정된 버전 미만의 최신 버전패키지이름>=1.0,<2.0
: 버전 범위 지정 (1.0 이상 2.0 미만)
2024.09.19 - [Python] - [Etc] SW Version: Semantic Versioning + package.version
[Etc] SW Version: Semantic Versioning + package.version
Semantic Versioning SystemSemantic Versioning (SemVer) 시스템에 따라,소프트웨어에서 major와 minor, patch (or micro) 버전을 구분하여 버전을 매김.이는 버전 번호를 MAJOR.MINOR.PATCH 형식으로 표현.MAJOR 버전:이전 버
ds31x.tistory.com
3-3. Conda 자체 관리
Conda 자체를 최신 상태로 유지하고 모든 패키지를 관리하는 작업.
# Conda 업데이트: Conda 자체를 최신 버전으로 업그레이드
conda update conda
# 모든 패키지 업데이트: 현재 환경의 모든 패키지를 최신 버전으로 업데이트
conda update --all
- 보통은
-n base
로 기본환경에서의conda
를 업데이트.
4. 채널 사용하기
채널은 Conda가 패키지를 다운로드하는 원격 저장소로, 다양한 소스에서 패키지를 제공받을 수 있도로 해 줌.
4-1. 채널 확인하기
# 현재 구성된 채널 목록 확인: 설정된 모든 채널과 우선순위 표시
conda config --show channels
4-2. 채널 추가 및 우선순위 설정
# 채널 추가: 새로운 패키지 소스 추가
conda config --add channels conda-forge
# 채널 우선순위 설정 (가장 높은 우선순위로 추가): 특정 채널을 최우선으로 검색하도록 설정
conda config --prepend channels bioconda
4-3. 기본 채널 변경하기
# .condarc 파일 편집: 기본 채널 설정 변경
conda config --set default_channels 채널URL
# 예시: conda-forge를 기본 채널로 설정하는 방법
conda config --set default_channels conda-forge
4-4. 특정 채널에서 패키지 설치
# 특정 채널에서 패키지 설치: 지정된 채널에서만 패키지 검색 및 설치
conda install -c conda-forge 패키지이름
5. 환경 파일로 관리하기
환경 파일을 사용하면 환경 설정을 공유하고 재현할 수 있는 방법.
# 모든 패키지를 포함하여 현재 환경 내보내기: 정확한 버전과 빌드 정보를 포함한 전체 환경 설정 저장
conda env export > environment.yml
# 내가 직접 설치한 패키지만 내보내기: 사용자가 명시적으로 설치한 패키지만 포함한 간결한 환경 파일 생성
conda env export --from-history > environment.yml
# 플랫폼 독립적인 환경 파일 생성: 서로 다른 운영체제 간에 공유 가능한 호환성 높은 환경 파일 생성
conda env export --from-history --no-builds > environment.yml
# 환경 파일로 환경 생성: 저장된 환경 설정으로 동일한 환경 재현
conda env create -f environment.yml
# 기존 환경 업데이트: 환경 파일을 기준으로 기존 환경 갱신 및 불필요한 패키지 제거
conda env update -f environment.yml --prune
6. 유용한 팁과 모범 사례
Conda를 효율적으로 사용하기 위한 권장 사항과 전문가들의 조언.
- 프로젝트별 독립 환경: 각 프로젝트마다 별도의 환경을 생성하여 의존성 충돌 방지가 중요한 관행.
- 환경 이름 규칙: 목적이나 프로젝트를 나타내는 명확한 환경 이름 사용이 바람직한 방식.
- 환경 파일 버전 관리:
environment.yml
파일을 프로젝트의 버전 관리 시스템에 포함하는 실용적인 접근법. - 최소한의 패키지만 설치: 필요한 패키지만 설치하여 환경을 가볍게 유지하는 효율적인 전략.
--from-history
활용: 환경 공유 시 플랫폼 간 호환성을 높이기 위한 유용한 옵션.- 생성 시 패키지 지정: 환경 생성 시 필요한 패키지를 함께 설치하는 시간 절약 방법.
- 환경 삭제 전 비활성화: 환경 삭제 시 해당 환경이 활성화되어 있으면 삭제되지 않는 중요한 주의사항.
# 예시: 데이터 과학 환경 한 번에 생성하는 효율적인 명령어
conda create -n datascience python=3.9 numpy pandas matplotlib scikit-learn
7. 문제 해결 및 고급 기능
일반적인 문제 해결 방법과 고급 사용자를 위한 추가 기능.
7-1. 일반적인 문제 해결
- 패키지 충돌:
conda clean -i
명령으로 인덱스 캐시를 정리하는 해결책.
- 여러 채널 검색 등으로 느린 설치 속도:
conda config --set channel_priority strict
설정으로 개선 가능한 성능 이슈.- 개인적으로는 mamba 로 대처를 권함.
- 환경 손상:
conda update --all
또는 환경 재생성을 통한 복구 방법.
7-3. 고급 기능
- Mamba: Conda의 빠른 대안으로, 동일한 명령 구문으로 사용 가능한 고성능 도구.
- conda-lock: 완전히 재현 가능한 환경을 위한 락파일 생성 유틸리티.
- conda-forge: 커뮤니티 주도의 패키지 저장소로 최신 패키지를 제공하는 인기 채널.
2023.08.23 - [개발환경] - [Env] Mamba 설치하기.
[Env] Mamba 설치하기.
이 문서는 conda가 설치되지 않은 상태에서 mamba를 설치하는 과정을 기재함. (conda를 개선한 것이 mamba라서 fresh하게 mamba install을 수행.) mamba는 거의 conda와 사용법은 같지만 꽤나 빠른 편이다. 사용
ds31x.tistory.com
'개발환경' 카테고리의 다른 글
[vscode] jupyter extension 사용하기. (0) | 2025.02.21 |
---|---|
[vscode] vim extension (0) | 2025.02.21 |
[Conda] miniconda 설치하기: Windows, macOS, WSL (1) | 2024.09.12 |
[Py] IPython, Jupyter Notebook, and Colab (3) | 2024.09.04 |
[Py] Jupyter Notebook 설치하기: conda (0) | 2024.09.04 |