티스토리 뷰
1. Introduction to Deep Learning / L3. Anaconda - What is Anaconda?
chrisysl 2018. 6. 15. 15:48Anaconda
- Anaconda를 사용하면 Data Science 작업에 자주 사용하는 패키지를 간단하게 설치할 수 있다.
- 또한 여러 프로젝트에서 작업 할 때마다 그에만 적용 되는 가상 환경을 만들 수 있다.
- Anaconda를 사용하면 work-flow를 단순화하고, 패키지의 복잡성 및 Python간의 잦은 버전 충돌 등의 많은 문제를 해결할 수 있다.
- Anaconda는 conda, Python 및 150 개가 넘는 scientific packages와 그 하위패키지가 함께 제공되는 소프트웨어다.
- conda는 패키지 및 environment manager다.
- Anaconda는 Python에서 가장 일반적인 data science package가 포함되어 있으므로 용량이 큰 편이다.
- 모든 패키지가 필요하지 않거나 저장 공간을 절약해야하는 경우 Miniconda를 선택하는 대안이 있다.
- Miniconda는 conda와 Python 만 포함하는 작은 배포판인데, 여전히 다른 추가 패키지들을 설치 가능하지만
- 최초에 같이 설치되지만 않을 뿐이다.
- Anaconda는 수많은 Data Science Package를 제공
- conda를 사용하여 패키지와 환경을 관리하면, 사용할 다양한 라이브러리를 다루는 문제를 줄일 수 있다.
Managing Packages
# conda로 numpy를 설치하는 예
- Package managers는 컴퓨터에 라이브러리 및 기타 소프트웨어를 설치하는 데 사용됨.
- pip는 Python 라이브러리의 기본 패키지 관리자입니다.
- Conda는 pip와 비슷하지만 pip가 일반적인 용도로 사용된다면, conda는 data science에 초점을 맞추고 있다.
- 그러나 conda는 pip와 같은 Python만의 것이 아니라, non-Python 패키지를 설치할 수도 있다.
- conda는 모든 소프트웨어 스택의 package manager 이기 때문.
- 다시말해, 모든 파이썬 라이브러리가 anaconda 및 conda에서 제공되는 것은 아니다.
- 따라서 필요한 패키지를 설치하기 위해 conda와 pip를 함께 사용할 수 있어야 함.
- Conda는 미리 컴파일 된 패키지를 설치한다.
- 예를 들어 Anaconda 배포판에는 Numpy, Scipy 및 Scikit-learn이 MKL 라이브러리와 함께 컴파일 되어 제공되므로
- 다양한 수학 연산을 가속화한다.
- 패키지는 보통 새 릴리스보다 뒤쳐지지만, 안정적인 경향이있다.
Environments
# conda로 environment 생성하는 예
- Conda는 package manager 일 뿐 아니라 가상 환경 manager 이기도함.
- virtualenv 및 pyenv와 유사한 역할을 한다고 보면 된다.
- environment를 사용하면 다른 프로젝트에 사용중인 패키지를 분리할 수 있다.
- 어떤 특정 라이브러리의 다른 버전의 코드로 작업하게 되는 경우가 있다.
- 예를 들어, Numpy에서 새로운 기능을 사용하는 코드나 제거 된 이전 기능을 사용해야 할 경우 등
- 한 번에 두 가지 버전의 Numpy를 설치하는 것은 불가능하다.
- 대신 Numpy의 각 버전에 대한 환경을 만들어 프로젝트의 적절한 environment에서 작업해야한다.
- 이러한 충돌은 Python 2 및 Python 3를 다룰 때도 발생한다.
- Python 3에서 실행되지 않는 이전 코드와 Python 2에서 실행되지 않는 새 코드로 작업을 해야 할 경우
- 두 버전을 모두 설치하면 문제가 발생할 여지가 매우 크다.
- 따라서 각각 별도의 환경을 갖는 것이 좋다.
- environment의 패키지 목록을 파일로 내보낸 다음, 코드에 해당 파일을 포함시킬 수도 있다.
- 이렇게하면 다른 사람들이 코드의 모든 종속성(dependencies)을 쉽게 load 할 수 있다.
- pip로는 #> pip freeze > requirements.txt 로 유사한 역할을 할 수 있다.