Conda Commands
Conda Commands
0. Introduction
- Anaconda는 Data Scient와 Machine / Deep Learning에서 사용하는 다양한 Package들을 관리해 주는 Open Source Platform입니다.
- GUI를 사용할 수도 있지만, 보다 세밀하고 다양한 기능을 사용하기 위해서는 Console에서 사용하는 Command들을 알아둘 필요가 있습니다.
- 이번 Post에서는 Anaconda의 Command들을 알아보도록 하겠습니다.
1. Commands
1.0. Conda 정보 출력
conda info
- 이 명령어는 Conda Package 관리자와 관련된 정보를 출력하는 명령어입니다.
1.1. Conda Package 관리자 Update
conda update conda
- Conda Package 관리자 자체를 최신 Version으로 Update하는 명령어입니다.
- 이 명령어를 실행하면 Conda는 현재 설치된 Version과 저장소에서 사용 가능한 최신 Version을 비교하여 필요한 경우 Update를 수행합니다.
1.2. Package 설치
conda install “Package Name”
- Conda Package 관리자를 사용하여 지정된 “Package Name”를 설치하는 명령어입니다
1.3. 특정 가상 환경에 Package 설치
conda install –name “Environment Name” “Package Name”
- 특정 가상 환경(“Environment Name”)에 지정된 Package(“Package Name”)를 설치합니다.
1.4. 특정 Channel에서 Package 설치
conda install –channel “Channel Name” “Package Name”
- 특정 채널(“Channel Name”)에서 지정된 Package(“Package Name”)를 설치하기 위해 사용됩니다.
- Conda는 다양한 Package와 Version을 제공하는 여러 채널을 지원합니다.
- 따라서 특정 채널에서 Package를 설치하려는 경우, –channel (또는 -c로도 축약됨) Option을 사용하여 해당 채널을 지정할 수 있습니다.
1.5. pip로 Package 설치
pip install “Package Name”
- Python의 Package 관리 시스템인 pip를 사용하여 지정된 Package(“Package Name”)를 설치하기 위해 사용됩니다.
- pip는 Python의 표준 Package 관리 도구이며, PyPI (Python Package Index)라는 저장소에서 수천 개의 Package를 설치할 수 있게 해줍니다.
- 그러나, Python 환경을 관리하는 데에는 conda와 같은 도구를 사용하는 것이 좋습니다. 특히 여러 가상 환경을 동시에 관리해야하는 경우나, Package 간의 의존성이 복잡한 경우에 유용합니다.
1.6. Package Update
conda update “Package Name”
- Conda Package 관리자를 사용하여 지정된 Package를 최신 Version으로 Update하는 명령어입니다
1.7. Command 도움말
conda “Command” –help
- “Command”에 해당하는 명령어에 대한 도움말과 사용 가능한 Option들을 볼 수 있습니다.
1.8. 가상 환경 생성
conda create –name “Environment Name” python=”Python Version”
- Conda Package 및 환경 관리자를 사용하여 특정 Python Version을 가진 새 가상 환경을 생성합니다.
- “Environment Name” : 생성할 가상 환경의 이름입니다.
- “Python Version”
- 설치할 파이썬의 Version입니다. 예를 들어, 3.7로 설정하면 파이썬 3.7 Version이 해당 가상 환경에 설치됩니다.
- 특정 Package들은 특정 Python Version을 요구하는 경우가 흔한데, 이런 경우에 유용하게 사용할 수 있습니다.
1.9. 가상 환경 활성화
conda activate “Environment Name”
- Conda Package 및 환경 관리자를 사용하여 특정 가상 환경을 활성화하는 데 사용됩니다.
1.10. 전체 가상 환경 목록 출력
conda env list
- 설치된 모든 가상 환경의 목록을 출력합니다. ( conda info –envs와 동일한 결과 )
- 현재 활성화되어 있는 가상 환경의 이름 앞에는 * 가 붙어 있습니다.
1.11. 가상 환경 복사
conda create –clone “Source Environment Name” –name “New Environment Name”
- 기존의 가상 환경을 복사하여 동일한 구성을 가신 새로운 환경을 생성하는 명령어입니다.
- “Source Environment Name” : 기존에 있던 가상 환경 이름
- “New Environment Name” : 새롭게 복사되어서 만들어질 가상 환경 이름
1.12. 설치된 Package 정보 확인
conda list
- 현재 활성화된 가상 환경에 설치된 모든 Package와 그 Version을 나열합니다.
1.13. 가상 환경 History(Revision) 출력
conda list –revisions
- 현재 conda 환경의 변경 내역(리비전)을 보여줍니다.
- 각 리비전은 환경에 대한 변경사항(예: Package 추가, Update, 제거)을 나타냅니다.
- 각 리비전은 고유한 번호와 함께 표시됩니다.
1.14. 특정 Revision으로 Restore(Rollback)
conda install –revision “Rev. No”
- 특정 리비전 번호(“Rev. No”)로 가상 환경을 복원하는 데 사용됩니다.
- 이 기능은 실수로 중요한 Package를 제거하거나 Update 후 문제가 발생한 경우 이전 상태로 쉽게 복원할 수 있게 도와줍니다.
1.15. 설치 Package List 저장
conda list –explicit > “Text File Name”
- 현재 conda 환경에 설치된 모든 Package의 명확한(specified) Version들을 나열하고, 그 리스트를 지정한 텍스트 파일(“Text File Name”)에 저장합니다.
- 이렇게 생성된 목록은 다른 시스템이나 환경에서 동일한 Package와 Version들을 설치하는 데 사용될 수 있습니다
1.16. 가상 환경 삭제
conda env remove –name “Environment Name”
- 지정한 conda 환경을 제거합니다.
1.17. 가상 환경 비활성화
conda deactivate
- 현재 활성화된 가상 환경을 비활성화합니다.
1.18. 파일로 부터 가상 환경 생성
conda env create –file “Text File”
- 주어진 텍스트 파일(“Text File”)에 명시된 Package와 종속성을 사용하여 새로운 conda 가상 환경을 생성합니다.
- 이 “Text File”은 주로 environment.yml 또는 .yml 확장자를 갖는 YAML 파일을 의미하며, 해당 파일은 conda 환경의 스펙(spec)을 명시하고 있습니다.
- 이러한 파일을 사용하면 동일한 환경을 여러 시스템에서 쉽게 재생성할 수 있습니다.
1.19. Package 삭제
conda remove –name “Environment Name” “Package Name 1” “Package Name 2”
- 지정된 가상 환경(“Environment Name”)에서 하나 이상의 Package(“Package Name 1”, “Package Name 2”, …)를 제거하기 위해 사용됩니다.
1.20. Package 정보 검색
conda search “Package Name”
- 특정 Package에 대해 사용 가능한 모든 Version들을 검색합니다. 이를 통해 해당 Package의 이전 Version이나 최신 Version 등을 확인할 수 있습니다.
- 특정 채널에서 Package를 검색하려면 –channel “Channel Name”을 이용하면 됩니다.
1.21. Cache 삭제
conda clean
- Conda Package 관리자의 캐시와 불필요한 파일들을 제거함으로써 저장 공간을 확보하는 데 사용됩니다.
- 사용되는 Option은 다음과 같습니다:
- -a 또는 –all : 모든 불필요한 파일과 캐시를 제거합니다.
- -p 또는 –packages : 더 이상 사용되지 않는 Package 통합 파일들을 제거합니다.
- -t 또는 –tarballs : Conda Package의 .tar.bz2 파일들을 제거합니다. 이 파일들은 Package가 설치된 후 더 이상 필요하지 않습니다.
- -i 또는 –index-cache : Package 메타데이터 인덱스 캐시를 제거합니다.
- -s 또는 –source-cache : 소스 캐시를 제거합니다.
1.22. 설정 관리
conda config
- Conda의 설정을 관리하는 데 사용되는 명령어입니다. 이 명령어를 사용하여 Conda의 설정 파일을 읽고, 수정하며, 추가할 수 있습니다.
- –show : 현재 Conda 설정을 표시합니다.
- –show-sources : 설정 값의 소스 위치를 표시합니다.
- –get “key_name” : 하나 이상의 설정 키의 값을 가져옵니다.
- –add channels “channel_name” : 새로운 채널을 추가합니다.
- –remove channels “channel_name” : 특정 채널을 제거합니다.
- –set “key_name” “value” : 특정 키의 값을 설정합니다.
- –prepend channels “channel_name” : 채널을 채널 목록의 맨 앞에 추가합니다.
- –append channels “channel_name” : 채널을 채널 목록의 맨 뒤에 추가합니다.
1.23. 진단
conda doctor
- conda의 문제를 진단하고 디버깅 정보를 제공하는 도구입니다.
- 이 도구는 여러가지 conda 서브시스템에 대한 정보를 출력하며, 현재 설치된 conda의 상태나 문제점에 대한 진단을 제공합니다.
1.24. Package 관리
conda package
- conda Package를 관리하고 조작하는 데 도움이 되는 도구입니다.
- 이 명령어를 사용하면 현재 환경에서 설치된 Package에 대한 정보를 얻거나 Package를 tarball 형식으로 변환할 수 있습니다.
2. Specifying Version Numbers
-
Package들을 설치하다 보면, 특정 Version을 지정해야 할 필요가 있는 경우가 있습니다.
-
이런 경우에 유용한 Version 지정 방법입니다.
Constraint type | Specification | Result | |
---|---|---|---|
Fuzzy | numpy=1.11 | 1.11.0, 1.11.1, 1.11.2, 1.11.18 etc. | |
Exact | numpy==1.11 | 1.11.0 | |
Greater than or equal to | “numpy>=1.11” | 1.11.0 or higher | |
OR | “numpy=1.11.1 | 1.11.3” | 1.11.1, 1.11.3 |
AND | “numpy>=1.8,<2” | 1.8, 1.9, not 2.0 |