컨텐츠 바로가기

[Python] 패키지 설치에 대한 관점: easy_install, pip, distutils

http://mcchae.egloos.com/11023238

지금껏 약 5년 동안 열심히 파이썬을 이용해 오면서,
기타 패키지는 모두 우분투 패키징을 이용하였습니다.

예를 들어,  python의 expect 모듈인 pexpect 모듈을 설치하고 싶으면,

$ apt-cache search expect
...
python-pexpect : ...
...
와 같이 찾아서,
$ sudo apt-get install python-pexpect
와 같이 설치를 하였습니다.

그런데 패키징이 이것만 있는 것이 아니었으니...

위와 같은 다양한 패키징이 존재하였습니다.

우선 자신이 개발한 자체 패키지를 설치하려면,
setup.py 파일을 아래와 같이 간단하게 만들어서,

 $ sudo python setup.py install
명령으로 설치를 하면 됩니다. 비단 python (비단구렁이가 아니라...^^) 뿐만 아니라 C 라이브러리 등등도
모두 설치 가능합니다.

처음 그림에서 패키징 3가지 중, distutils 모듈을 이용하는 방법입니다.

그런데 두둥.... 어느날 무언가를 설치하려 하면,

easy_install 을 이용하라는 것과, pip 를 이용하라는 등 중복해서 나오기 시작했습니다.

결국 easy_install 과 pip 모두 파이썬용 모듈의 저장소를 찾아 원하는 패키지를 설치하는 목적이 있습니다만,
처음 그림과 같이, easy_install 의 패키징인 Setuptools 자체는 결국 없어질 과거 유산이라는 군요.
따라서 같은 값이면 pip를 이용한 패키징이 더 좋다합니다.

그런데 pip를 설치하려면 필요한 패키지가 setuptools 혹은 distribute 가 있어야 한다는 군요.

일단은 모두 사용해 본다는 의미에서 setuptools를 이용해 보겠습니다.

easy_install 명령행을 수행할 수 있는 Setuptools를 설치하는 방법은 다음과 같습니다.

    which easy_install 2>/dev/null
    if [ $? -ne 0 ];then
        wget https://pypi.python.org/packages/source/s/setuptools/setuptools-0.6c11.tar.gz
        tar xvfz setuptools-0.6c11.tar.gz
        pushd setuptools-0.6c11
            sudo python setup.py install
        popd
        sudo rm -rf setuptools-0.6c11*
    fi

그리고 나서 easy_install로 pip를 설치하면 됩니다.

$ sudo easy_install pip

그 후에 pip를 수행하면,

와 같이 확인할 수 있습니다.

easy_install 의 단순 설치와는 달리,

search 명령으로 어떤 패키지가 있는지 찾을 수도 있고,
install로 설치 뿐만 아니라, uninstall 할 수도 있습니다.

또한 list, show 등의 명령으로 현재 시스템에 설치된 패키지를 조사할 수도 있네요...

어느분께는 도움이 되셨기를...

덧글|덧글 쓰기|신고