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

파이썬 패키지 설치하기

라이브러리와 패키지

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

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

패키지 설치

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

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

패키지 관리자

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

pip를 이용한 패키지 설치

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

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)
  Downloading ndg_httpsclient-0.4.0.tar.gz
Requirement already satisfied (use --upgrade to upgrade): numpy>=1.8 in ./anaconda2/lib/python2.7/site-packages (from quandl)
Requirement already satisfied (use --upgrade to upgrade): python-dateutil in ./anaconda2/lib/python2.7/site-packages (from quandl)
Requirement already satisfied (use --upgrade to upgrade): pandas>=0.14 in ./anaconda2/lib/python2.7/site-packages (from quandl)
Requirement already satisfied (use --upgrade to upgrade): requests>=2.7.0 in ./anaconda2/lib/python2.7/site-packages (from quandl)
Collecting inflection>=0.3.1 (from quandl)
  Downloading inflection-0.3.1.tar.gz
Requirement already satisfied (use --upgrade to upgrade): cryptography>=0.7 in ./anaconda2/lib/python2.7/site-packages (from pyOpenSSL->quandl)
Requirement already satisfied (use --upgrade to upgrade): pytz>=2011k in ./anaconda2/lib/python2.7/site-packages (from pandas>=0.14->quandl)
Requirement already satisfied (use --upgrade to upgrade): idna>=2.0 in ./anaconda2/lib/python2.7/site-packages (from cryptography>=0.7->pyOpenSSL->quandl)
Requirement already satisfied (use --upgrade to upgrade): setuptools>=11.3 in ./anaconda2/lib/python2.7/site-packages/setuptools-20.6.7-py2.7.egg (from cryptography>=0.7->pyOpenSSL->quandl)
Requirement already satisfied (use --upgrade to upgrade): enum34 in ./anaconda2/lib/python2.7/site-packages (from cryptography>=0.7->pyOpenSSL->quandl)
Requirement already satisfied (use --upgrade to upgrade): ipaddress in ./anaconda2/lib/python2.7/site-packages (from cryptography>=0.7->pyOpenSSL->quandl)
Requirement already satisfied (use --upgrade to upgrade): cffi>=1.4.1 in ./anaconda2/lib/python2.7/site-packages (from cryptography>=0.7->pyOpenSSL->quandl)
Requirement already satisfied (use --upgrade to upgrade): pycparser in ./anaconda2/lib/python2.7/site-packages (from cffi>=1.4.1->cryptography>=0.7->pyOpenSSL->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를 이용한 패키지 설치

패키지도 다른 패키지의 기능을 사용하는 경우가 많다. 이러한 것을 패키지의 의존성(dependency)이라고 한다.

만약 패키지 A가 패키지 B의 기능을 사용하고 있다면 패키지 B가 설치되어 있는 경우에만 패키지 A를 사용할 수 있다. 이 때 패키지 A가 패키지 B에 의존한다고 말한다.

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

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

conda install 패키지이름

예를 들어 seaborn이라는 이름의 패키지를 설치하려면 다음과 같이 명령한다.

$ conda install seaborn
Fetching package metadata: ....
Solving package specifications: ...................................
Package plan for installation in environment C:\Anaconda:

The following packages will be downloaded:

    package                    |            build
    ---------------------------|-----------------
    seaborn-0.6.0              |      np110py27_0         248 KB

The following NEW packages will be INSTALLED:

    seaborn: 0.6.0-np110py27_0

Proceed ([y]/n)?

Fetching packages ...
seaborn-0.6.0- 100% |###############################| Time: 0:00:01 155.53 kB/s
Extracting packages ...
[      COMPLETE      ]|##################################################| 100%
Linking packages ...
[      COMPLETE      ]|##################################################| 100%

질문/덧글

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