C.W.K.
Stream
Lesson 01 of 05 · published

왜 pip 이 보편적이면서 답답한가

~11 min · pip, overview, python

Level 0초심자
0 XP0/55 lessons0/16 achievements
0/80 XP to next level80 XP to go0% complete

pip 이 공식, 디폴트 Python 패키지 installer. 모든 Python 3.4+ install 과 함께 ship. PyPI (Python Package Index) 와 talk, 500,000+ 패키지 호스팅. 모든 Python 튜토리얼이 pip 존재 가정; 모든 requirements.txt 파일이 pip 으로 읽혀; 모든 새 Python 도구 (uv, poetry, pixi) 가 결국 pip ecosystem 과 interop. Python 에서 pip 못 피해 — 잘 배우는 것만 가능.

pip 이 알려진 방식으로 답답하기도 해. 디폴트로 lockfile 없음requirements.txt 가 옵션 버전 제약 가진 flat 패키지 리스트일 뿐, 전체 transitive 의존성 트리의 진짜 lock 아님. 느림 — 큰 과학 Python 프로젝트 install 이 분 단위. 빌트인 Python 버전 관리 없음pyenv 또는 비슷한 거 별도 필요. uninstall 이 더러움 — 패키지 제거하면 transitive deps 깔린 채. 글로벌 도구 runner 없음 — npx 스타일 워크플로우엔 pipx 별도 필요.

모던 Python 개발이 보통 4 도구 chain 으로 보충: pip + venv + pip-tools (또는 pip-compile) + pyenv + pipx. 이 quest 의 다음 트랙, uv, 가 5개 다 한 Rust binary 로 대체, 10-100배 빠름. 그치만 uv 아직 지원 안 하는 Python 도구 install 해야 하는 날 다시 pip — 그래서 매일 driver 가 uv 돼도 pip 부터 배워.

Code

pip 이 하는 거 — 그리고 안 하는 거·text
  pip 가 함                              pip 가 안 함
  -----------                            ----------------
  PyPI 에서 install                      Python 버전 관리 (pyenv 사용)
  requirements.txt 읽기                  진짜 lockfile 생성 (pip-tools 사용)
  Editable install (-e)                  install 없이 도구 실행 (pipx 사용)
  의존성 resolve                         Transitive deps 깨끗하게 uninstall
  로컬 wheel/sdist install               프로젝트 별 환경 (venv 사용)
  Index-url override                     빌드 환경 (venv + invocation)

  모던 stack:  pip + venv + pip-tools + pyenv + pipx
  또는 그냥:    uv  (다음 트랙)

External links

Exercise

'pip --version' 과 'python3 --version' 돌려. Python 안 깔렸으면 Homebrew 통해 install ('brew install python@3.13'). Python 버전, pip 버전, 어디 사는지 ('which python3', 'which pip3') 적어. path 가 어떤 Python 쓰는지 알려줘 — 하나 이상 가능.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.