pip은 이 퀘스트에서 가장 널리 쓰이면서 가장 자주 잘못 쓰이는 도구야. 아래 원칙이 안정적인 Python 환경을 운영하는 사람과 매일 환경 문제에 시달리는 사람을 갈라.
항상 virtual environment를 쓰고 sudo pip은 사용하지 마. 전역 설치는 시스템 Python 라이브러리와 프로젝트 패키지를 섞어 둘 다 깨뜨릴 수 있어. 일반적인 Python 프로젝트라면 각자 격리된 환경을 가져야 해.
virtualenv 대신 python3 -m venv를 써. 표준 라이브러리의 venv가 내장되어 있고 대부분의 용도에 충분해. 서드파티 virtualenv는 대다수 사용자에게 필요 없는 기능을 더한 Python 2 시대의 흔적이야.
pip을 유지하면서 재현성이 필요하면 pip-tools를 써. pip-compile은 작은 requirements.in을 모든 버전이 고정된 requirements.txt로 바꿔. 엄격한 재현성이 필요하지만 아직 uv로 옮길 수 없는 프로젝트에 알맞아.
새 Python 프로젝트에는 uv를 검토해. uv는 10~100배 빠르고 진짜 lockfile을 제공하며 Python 버전 관리까지 맡아. pip, venv, pip-tools, pyenv, pipx의 역할을 실행 파일 하나로 합친 도구로 다음 트랙에서 자세히 다뤄.
macOS의 PEP 668을 존중해. 최신 macOS Python은 시스템 도구가 깨지는 것을 막으려고 전역 pip 설치를 제한해. 'externally-managed-environment' 오류가 나오면 venv를 써야 해. --break-system-packages는 올바른 해결책이 아니야.