Python - 파이썬 공부시작 pip conda anaconda miniconda

<!-- TOC -->

<!-- /TOC -->

들어가기

예전에 한번 책을 대충 훑어본적이 있긴한데, 기억이 가물가물해서 이번에 다시 파이썬책을 읽어보았다. 몇 년이 지나도 과거에 한번 본적이 있어서인지, 아니면 파이썬 자체가 너무 쉬워서인지 2~3일 정도 책을 보니 대충 문법정도는 익힐수 있었다.

책을 본 뒤, 인프런에 Python 강좌영상을 보는데 왠걸 파이썬 개발환경을 구성할 때 파이썬 공식 홈페이지에서 파이썬 개발도구를 다운로드 하는 것이 아니라 miniconda라는 것을 다운로드 한다. 잉? 이건 뭐지? 일종의 패키지관리도구인가? PIP라는게 있는데?

pip, Conda, MinoConda, Anaconda의 대충 용어정리를 좀 해봐야겠다.

파이썬의 pip

pip는 파이썬전용 공식 패키지 메니저이다. Node의 npm과 같은 역할은 하는 녀석이다. pip도 파이썬으로 만들어 졌으며, 오픈소스이다. 뭔가 필요한 모듈이 있다면, 그것을 pip로 다운로드해서 import하여 사용할수 있다. 이 pip는 파이썬 재단에서 Python 3.4 버전부터 공식적으로 제공하는 패키지 관리도구이며, 오직 Python 모듈 패키지만 사용할수 있다.

만약 파이썬이 설치되어 있다면 아래처럼 pip list 명령어로 이미 설치된 파이썬 모듈, 패키지등을 확인할수 있다.

레이아웃 구조

pip의 기초 명령어는 다음과 같다.

1
2
3
4
5
pip install SomePackage // 특정 패키지 다운로드
pip uninstall SomePackage //특정 패키지 삭제
pip install SomePackage==1.0.4 // 특정 패키지의 특정 버전으로 설치
pip install --upgrade SomePackage // 특정 패키지 업그레이드
pip list // 설치된 패키지 목록 확인

Anaconda와 Miniconda 파이썬 배포판

아나콘다란 파이썬과 R의 데이터 과학과 머신러닝을 위한 오픈소스 배포판이다. 즉 Anaconda는 파이썬용 그리고 R용 두가지가 존재한다.

파이썬 Anaconda 배포판은 파이썬 + conda + 데이터과학과 머신러닝을 위한 패키지(약150)를 포함하며, 이 많은 라이브러리 때문에 설치할때 3GB 정도의 많은 용량이 필요하다.

파이썬 Miniconda 배포판은 Anaconda의 경량버전으로, 파이썬 + conda 로 구성되어 있다. 따라서 파이썬 학습용으로는 Miniconda가 적당해 보인다. 필요한 모듈은 그때마다 즉시 설치해서 사용하면 되기 때문이다.

미니콘다 설치경로 https://conda.io/miniconda.html

Conda

Continuum Analytics에서 재공하는 일종의 파이썬 배포판인 Anaconda의 패키지 메니저이다. 이것 역시 오픈소스이며, 파이썬으로 만들어졌다. pip와는 다른 anaconda repository에서 필요한 모듈을 다운로드 받는다. Conda도 일종의 패키지 관리자이며 추가로 환경관리자(enviroment)이다. 여기서 환경관리자 부분은 잘 모르겠다. vitualenv라는 가상환경을 제공한다고 하는데 일종의 격리된 프로그램 실행환경을 말하는 것 같다.(머신러닝같은 영역에서 사용하는 듯 하나 정확히 모르겠다.) pip와는 다르게 파이썬 뿐만 아니라 R, Ruby, Lua, Java, C, C++, FORTRAN등등 다양한 언어에서도 사용이 가능하다.

그래서 파이썬 공부할때 뭘 설치할까

파이썬을 공부하면서 머신러닝을 공부할 생각이니 miniconda를 설치할 생각이다. 물론 파이썬 재단에서 재공하는 파이썬 core를 설치하고 추가로 conda를 설치할수 있다고 하는데, 별로 추천되지 않는듯 하다. miniconda를 설치해도 conda만 사용하는 것이 아니라 pip도 사용이 가능하다.

참고자료

점프투파이썬 pip https://wikidocs.net/15134

pip vs conda https://stackoverflow.com/questions/20994716/what-is-the-difference-between-pip-and-conda

pip vs conda https://hashcode.co.kr/questions/3873/conda%EC%99%80-pip%EC%9D%98-%EC%B0%A8%EC%9D%B4%EA%B0%80-%EB%AC%B4%EC%97%87%EC%9D%B8%EA%B0%80%EC%9A%94

conda doc https://conda.io/docs/

아나콘다 vs 미니콘다 https://stackoverflow.com/questions/45421163/anaconda-vs-miniconda