pip은 Python의 공식 기본 패키지 설치 도구로 모든 Python 3.4 이상에 함께 제공돼. 500,000개가 넘는 패키지를 가진 PyPI와 통신하지. 모든 Python 안내서가 pip을 전제로 하고 requirements.txt도 pip이 읽으며, uv·Poetry·pixi 같은 새 도구도 결국 pip 생태계와 호환돼. Python에서는 pip을 피할 수 없으니 제대로 익히는 수밖에 없어.
답답한 점도 잘 알려져 있어. 기본 lockfile이 없어서 requirements.txt는 선택적인 버전 제약을 가진 평평한 목록일 뿐, 전이 의존성 전체를 고정하지 못해. 큰 과학 Python 프로젝트는 설치에 몇 분이 걸릴 만큼 느리고, 여러 Python 버전을 관리하려면 pyenv 같은 도구가 따로 필요해. 패키지를 제거해도 전이 의존성이 남는 지저분한 제거 문제도 있고, npx처럼 전역 도구를 격리해 실행하려면 pipx가 별도로 필요해.
그래서 현대 Python 개발에서는 pip, venv, pip-tools 또는 pip-compile, pyenv, pipx를 함께 쓰곤 해. 다음 트랙의 uv는 이 다섯 도구를 Rust 실행 파일 하나로 대체하면서 10~100배 빠르게 동작해. 그래도 uv가 아직 지원하지 않는 도구를 설치할 때는 다시 pip을 만나게 되므로, 주 도구를 uv로 바꾸더라도 pip부터 알아야 해.