Python Package Index(PyPI) 저장소로부터 파이썬 패키지를 받아 설치하는 패키지 관리 도구.
PyPI는 서드파이 파이썬 오픈소스 패키지들을 위한 저장소이다.
Node.js의 npm과 같은 개념이라고 생각하면 된다.
기초적인 패키지 매니저인 easy_install이 파이썬 설치시 자동 설치된다.
하지만 pip를 사용하는 것이 훨씬 유용하므로 pip를 이용하는 것이 일반적이다.
easy_install pip # Django를 설치하여보자 pip install django # global install
여러 개의 파이썬 프로젝트가 하나의 컴퓨터에서 충돌을 일으키지 않고 존재할 수 있게 도와주는 것이다.
Virtualenv가 없을 경우
이 때 발생하는 일은,
$ pip install requests Downloading/unpacking requests Downloading requests-1.0.0.tar.gz (337Kb): 337Kb downloaded Running setup.py egg_info for package requests Installing collected packages: requests Running setup.py install for requests error: could not create '/Library/Python/2.7/site-packages/requests': Permission denied
위의 에러는 일반적으로 mac 사용자가 해당 폴더에 쓰기 권한이 없어서 생기는 것이다.
sudo를 사용하여 install 하면 설치는 진행될 것이다.
$ sudo pip install requests Password: Downloading/unpacking requestss Running setup.py egg_info for package requests Installing collected packages: requests Running setup.py install for requests Successfully installed requests Cleaning up ...
설치 완료 후, python 명령어를 실행해서 Requests 라이브러리를 임포트 해 보자.
>>> import requests >>> requests.get('http://naver.com') <Response [200]>
위와 같은 flow로 어떤 프로젝트를 성공적으로 끝마쳤다고 생각해보자!
그 프로젝트가 아주 좋은 반응을 얻고,
이 후 유사한 방식의 업그레이드 버전에 대한 개발 요청을 받았다면?
아마도 기존에 작성하였던 코드를 재활용하여 진행할 수 있을 것이다.
새로운 프로젝트를 진행하기 전,
requests 라이브러리가 새롭게 기능이 추가된 것을 알 수 있었다.
이 기능을 새 프로젝트에 필수적인 기능이었다!
이 기능을 사용하기 위해, 기존에 설치하였던 requests 라이브러리를 업데이트 해 보았다.
sudo pip install --upgrade requests
기존의 프로젝트에 에러가 발생한 것이다.
업데이트를 하면서 requests 라이브러리에 변화가 생겼고,
이 작은 변화가 코드를 사용할 수 없게 오염시킨 것이다.
하나의 프로젝트만 증상이 발견된다면,
새로운 라이브러리 업데이트에 맞게 수정할 수도 있겠지만
수 많은 프로젝트에 대해서는 어떻게 해결할 것인가???
프로젝트 혹은 프로그램별로 각각 독립된 가상의 환경을 가짐으로써,
서로 영향을 끼치지 않고 개발이 가능해지는 것이다.
Django - intro (0) | 2019.07.23 |
---|---|
dictionary + iteration 딕셔너리와 반복문 (0) | 2019.07.22 |
자료구조 - dictionary (0) | 2019.07.21 |
모듈 만들기 (0) | 2019.07.21 |
모듈 사용하기 (0) | 2019.07.21 |
댓글 영역