작성자: admin 작성일시: 2016-05-01 19:30:47 조회수: 2471 다운로드: 113
카테고리: Python 태그목록:

파이썬 패키지 설치하기

라이브러리와 패키지

집을 지을 때, 시멘트나 철근이 필요하다고 해서 집을 짓는 사람이 시멘트 제작이나 철광석 제련부터 할 수는 없다. 대부분의 건축에 공통적으로 사용되는 부품이나 재료는 이미 만들어진 것을 사서 쓰는 것이 효율적이다.

프로그램도 마찬가지어서 필요한 모든 부분을 한 사람이 만드는 경우는 거의 없으며 여러가지 프로그램에 공통적으로 사용되는 부분은 해당 분야의 전문가가 미리 만들어 놓은 프로그램을 가져다 사용하는 것이 현명한 선택이다. 이렇게 다른 프로그램 제작에 사용하기 위해 미리 만들어진 프로그램의 집합을 라이브러리(library)라고 한다. 파이썬에서는 라이브러리라는 용어 대신 패키지(package)라는 말을 주로 사용한다.

패키지 설치

패키지는 원래 파이썬 인터프리터와는 별도로 설치해야 한다. 몇몇 패키지는 파이썬을 설치할 때 같이 설치되며 이러한 패키지를 기본 패키지라고 한다. 그러나 대부분의 패키지는 파이썬을 설치한 후에 별도로 설치한다.

아나콘다 등의 파이썬 배포판을 사용하는 경우에는 배포판에 따라 다양한 패키지들을 추가로 기본 설치해 주기도 한다. 그러나 배포판에서 설치해 주는 기본 패키지 외에 추가적인 패키지를 더 사용해야 하는 경우에는 사용자가 수동으로 설치해야 한다.

C, C++, 자바와 같은 언어는 새로운 라이브러리를 설치할 때 그 라이브러리를 제공하는 웹사이트를 일일히 방문하여 소스코드나 바이너리를 다운로드 받아야 한다. 하지만 파이썬을 비롯한 다른 프로그래밍 언어들은 모든 패키지를 한 서버에 등록하게 함으로써 간단한 명령어 만으로 패키지를 쉽게 다운로드 받아 설치할 수 있다.

기본적으로 모든 파이썬 패키지는 PyPI 서버(https://pypi.python.org/pypi)라는 공식 패키지 서버에 등록된다. 아나콘다 배포판의 경우에는 PyPI 가 아닌 독자적인 패키지 서버를 운영하고 있으며 각 운영체제별로 미리 빌드되어있는 패키지를 제공하는 대신 PyPI 보다는 제공하는 패키지의 수가 적다.

패키지 관리자

패키지를 설치하기 위한 프로그램을 패키지 관리자라고 한다. 파이썬에서 pip 라고 하는 패키지 관리자를 기본으로 제공하지만 아나콘다 배포판에서는 conda라고 하는 아나콘다 전용 패키지 관리자도 제공한다. conda는 아나콘다 배포판이 설치될 때에 자동으로 같이 설치된다.

pip를 이용한 패키지 설치

pip를 이용하여 패키지를 설치하려면 콘솔 창에서 다음과 같이 입력한다.

파이썬 2가 아닌 파이썬 3 버전을 사용하는 경우에는 pip가 아닌 pip3 를 사용한다.

pip install 패키지이름

또는

pip3 install 패키지이름

예를 들어 quandl이라는 이름의 패키지를 설치하려면 pip install quandl 이라고 명령한다.

$ pip install quandl

Collecting quandl
  Downloading Quandl-3.0.0-py2.py3-none-any.whl
Requirement already satisfied (use --upgrade to upgrade): pyOpenSSL in ./anaconda2/lib/python2.7/site-packages (from quandl)
Requirement already satisfied (use --upgrade to upgrade): pyasn1 in ./anaconda2/lib/python2.7/site-packages (from quandl)
Collecting more-itertools (from quandl)
  Downloading more-itertools-2.2.tar.gz
Requirement already satisfied (use --upgrade to upgrade): six in ./anaconda2/lib/python2.7/site-packages (from quandl)
Collecting ndg-httpsclient (from quandl)
.. (중간 생략) ..
Building wheels for collected packages: more-itertools, ndg-httpsclient, inflection
  Running setup.py bdist_wheel for more-itertools ... done
  Stored in directory: /home/joel/.cache/pip/wheels/1e/74/ea/935c038db0e8a7077c66d5da0d9b6981daee2bebb991fa1794
  Running setup.py bdist_wheel for ndg-httpsclient ... done
  Stored in directory: /home/joel/.cache/pip/wheels/c9/88/f1/348d5ec506bef5a2a8351243028289a7bb9513b8dd8bbf1c14
  Running setup.py bdist_wheel for inflection ... done
  Stored in directory: /home/joel/.cache/pip/wheels/41/fa/e9/2995f4ab121e9f30f342fa2d43f0b27f851a0cb9f0d98d3b45
Successfully built more-itertools ndg-httpsclient inflection
Installing collected packages: more-itertools, ndg-httpsclient, inflection, quandl
Successfully installed inflection-0.3.1 more-itertools-2.2 ndg-httpsclient-0.4.0 quandl-3.0.0

conda를 이용한 패키지 설치

대부분의 패키지는 내부적으로는 다른 패키지의 기능을 사용한다. 예를 들어 만약 패키지 A가 패키지 B의 기능을 사용하고 있다면 패키지 B가 설치되어 있는 경우에만 패키지 A를 사용할 수 있다. 이 때 패키지 A가 패키지 B에 의존(depend)한다고 말한다.

아나콘다 배포판에서 제공하는 conda 패키지 관리자는 이러한 의존성 관리 성능이 뛰어나다. 설치하거나 제거할 패키지간의 의존성을 파악하고 만약 설치하고자 하는 패키지가 의존하고 있는 다른 패키지가 설치되어 있지 않거나 버전이 맞지 않으면 필요한 패키지를 설치해 주거나 업그레이드 또는 다운그레이드 해 준다.

conda를 이용하여 패키지를 설치하는 명령어는 다음과 같다.

conda install 패키지이름

예를 들어 flake8이라는 이름의 패키지를 설치하려면 다음과 같이 conda install flake8이라고 명령한다. conda 패키지 관리자가 flake8 설치에 필요한 mccabe 패지와 pycodestyle 패키지까지도 자동으로 설치해 주는 것을 볼 수 있다.

$ conda install flake8

Fetching package metadata ...........
Solving package specifications: .

Package plan for installation in environment C:\Anaconda2:

The following NEW packages will be INSTALLED:

    flake8:      3.3.0-py27_0
    mccabe:      0.6.1-py27_0
    pycodestyle: 2.3.1-py27_0

Proceed ([y]/n)?

mccabe-0.6.1-p 100% |###############################| Time: 0:00:00 389.94 kB/s
pycodestyle-2. 100% |###############################| Time: 0:00:00 238.40 kB/s
flake8-3.3.0-p 100% |###############################| Time: 0:00:00 310.58 kB/s

질문/덧글

아직 질문이나 덧글이 없습니다. 첫번째 글을 남겨주세요!