파이썬 pip
pip은 파이썬 모듈이나 패키지를 쉽게 설치할 수 있도록 도와주는 도구이다.
pip을 이용해서 파이썬 프로그램을 설치하면 의존성 있는 모듈이나 패키지를 함께 설치해 주기 때문에 매우 편리하다. 예를 들어 B라는 파이썬 패키지를 설치하려면 반드시 A라는 패키지가 먼저 설치되어 있어야 하는 규칙이 있다고 할 때 pip을 이용하면 매우 편리하다. pip을 이용하여 B 패키지를 설치할 때 A 패키지가 자동으로 설치가 되기 때문이다. pip이 없었던 과거에는 이런 의존성들을 개발자가 미리 파악하고 설치해야하는 불편함이 있었다.
(참고. 우분투의 apt-get을 이용하면 우분투 시스템에 소프트웨어를 편리하게 설치할 수 있다. pip은 apt-get과 매우 비슷한 역할을 한다. apt-ge이 우분투 프로그램을 설치한다면 pip은 파이썬 프로그램을 설치하는 것이다.)
파이썬 3 버전을 사용하는 사용자는 pip이 이미 설치되어 있기 때문에 pip을 따로 설치할 필요가 없다. (파이썬 2.7 버전 사용자는 pip이 자동으로 설치가 되지 않기 때문에 수동으로 pip을 설치해 주어야 한다.)
pip 수동 설치
다음은 수동으로 pip을 설치하는 방법이다. (이미 언급했지만 파이썬 3 사용자는 pip수동 설치가 필요없다.)
먼저 다음의 URL에서 get-pip.py 파일을 다운로드 받는다.
https://bootstrap.pypa.io/get-pip.py
다운로드 받은 후에 다음의 명령어를 실행하면 pip 설치가 자동으로 진행된다.
python get-pip.py
pip 사용
pip사용법에 대해서 간단하게 알아보자.
pip install
PyPI(Python Package Index)는 파이썬 소프트웨어가 모여 있는 저장공간이다. 현재 이곳에는 100,000건 정도의 파이썬 패키지가 등록되어 있다. 이 곳에 등록된 파이썬 패키지는 누구나 다운받아 사용할 수 있다. 이곳에서 직접 다운받아서 설치해도 되지만 pip을 이용하면 다음과 같이 간편하게 설치를 할 수 있다.
pip install SomePackage
(SomePackage는 다운받을 수 있는 임의의 패키지를 의미한다.)
pip uninstall
설치한 패키지를 삭제하고 싶다면 다음의 명령어로 삭제가 가능하다.
pip uninstall SomePackage
특정 버전으로 설치하기
다음과 같이 특정버전의 파이썬 패키지를 설치 할 수도 있다.
pip install SomePackage==1.0.4
위 명령어를 수행하면 1.0.4 버전의 SomePackage를 설치하게 된다.
다음처럼 버전을 생략한 경우 최종버전을 설치하게 된다.
pip install SomePackage
최신 버전으로 업그레이드하기
패키지를 최신버전으로 업그레이드 하려면 다음과 같이 실행한다.
pip install --upgrade SomePackage
설치된 패키지 확인하기
pip을 이용하여 설치한 패키지들의 목록을 출력하려면 다음과 같이 실행한다.
pip list
다음과 같이 설치된 패키지 목록이 출력될 것이다.
docutils (0.9.1)
Jinja2 (2.6)
Pygments (1.5)
Sphinx (1.1.2)
pip 따라해 보기
pip을 이용하여 flask를 설치하는 실례를 보도록 하자. flask는 유명한 파이썬 웹 프레임워크 중의 하나이다.
다음과 같이 flask를 설치해 보자. 아마도 아래와 비슷한 화면이 출력되며 설치가 진행될 것이다.
$ pip install flask
...
Downloading Flask-0.12-py2.py3-none-any.whl (82kB)
100% |████████████████████████████████| 92kB 548kB/s
Collecting Jinja2>=2.4 (from flask)
Downloading Jinja2-2.9.5-py2.py3-none-any.whl (340kB)
100% |████████████████████████████████| 348kB 2.3MB/s
Collecting Werkzeug>=0.7 (from flask)
Downloading Werkzeug-0.11.15-py2.py3-none-any.whl (307kB)
100% |████████████████████████████████| 317kB 1.9MB/s
...
Successfully installed Jinja2-2.9.5 MarkupSafe-0.23 Werkzeug-0.11.15 click-6.7 flask-0.12 itsdangerous-0.24
flask 설치시 의존성있는 패키지인 Jinja2, Wekzeug등의 패키지도 함께 설치되는 것을 확인할 수 있을 것이다.
이번에는 uninstall을 수행해 보자. 삭제되는 파일을 보여주고 진행할것인지 묻는 프로프트(y/n)가 나타난다. 'y'를 입력하여 진행하면 flask가 uninstall되는 것을 확인할 수 있을 것이다.
$ pip uninstall flask
Uninstalling Flask-0.12:
...
/Library/Python/2.7/site-packages/flask/views.py
/Library/Python/2.7/site-packages/flask/views.pyc
/Library/Python/2.7/site-packages/flask/wrappers.py
/Library/Python/2.7/site-packages/flask/wrappers.pyc
/usr/local/bin/flask
Proceed (y/n)? y
Successfully uninstalled Flask-0.12
이때 flask 설치시 함께 설치되었던 의존성 패키지들은 함께 삭제되지 않는다.
pip을 이용한 개발환경 구축하기
여러명이서 함께 파이썬 프로그램을 만들 때는 개발시 필요한 의존성 패키지들을 반드시 동일하게 맞추고 개발해야 한다. 예를 들어 A는 1.0 버전의 SomePackage를 이용하여 개발을 하고 B는 1.1 버전으로 개발을 한다면 분명 SomePackage의 다른부분으로 인해 오류가 발생할 확율이 높을 것이다.
pip을 이용하여 협업을 통한 파이썬 개발시 필요한 의존성 패키지를 동일하게 맞추는 방법에 대해서 알아보자.
먼저 최초 개발자 A는 다음과 같이 pip을 이용하여 의존성 있는 파일리스트를 만들 수 있다.
pip freeze > requirements.txt
위 명령을 수행하면 requirements.txt 파일 내에는 다음과 같이 개발시 필요한 패키지들이 저장된다.
docutils==0.9.1
Jinja2==2.6
Pygments==1.5
Sphinx==1.1.2
패키지명과 버전이 포함된 파일임을 알 수 있다.
이제 A는 B에게 requirements.txt 파일을 제공하면 B는 다음과 같이 실행하여 파이썬 패키지를 설치할 수 있다.
pip install -r requirements.txt
위 명령을 수행하면 requirements.txt 파일내에 정의된 패키지들을 기술된 버전으로 설치한다.
이런 과정을 통해 A와 B는 동일한 파이썬 개발환경을 구축할 수 있게 되어 의존성 패키지로 인한 오류가 발생하지 않을 것이다.
박응용 님
1876
2020년 7월 8일 10:48 오후