기술

왜 다들 pip 대신 uv를 쓸까, 같은 맥에서 재 보니 6배

같은 맥에서 같은 패키지 4개(의존성 포함 27개)를 pip와 uv로 설치해 시간을 쟀습니다. 바꾸는 법은 pip install 앞에 uv 한 단어지만, 가상환경이 없으면 설치를 거부한다는 점은 알아 두세요.

파이썬 프로젝트를 새로 받으면 의존성 설치를 기다리는 시간이 깁니다. 요즘 README마다 pip 대신 uv로 설치하라고 적는 이유를 재 봤습니다.

같은 패키지, 같은 맥

조건걸린 시간
pip7.2초
uv (캐시 없이)1.2초
uv (캐시 있음)0.1초
  • 설치한 것: pandas fastapi requests matplotlib (의존성 포함 27개)
  • 환경: Apple M4 Pro, Python 3.13.12, uv 0.11.4, 2026년 11월 2일
  • 방법: 매번 새 가상환경을 만들고 /usr/bin/time으로 쟀습니다. pip는 3회(7.67·7.17·6.39초), uv 캐시 없음(--no-cache)도 3회(1.25·1.16·1.10초) 재서 가운데 값을 적었습니다.

네트워크 속도에 따라 숫자는 달라집니다. 그래도 같은 조건에서 약 6배 차이였고, 캐시가 있으면 내려받기 없이 링크만 걸어 0.1초에 끝났습니다. uv 저장소는 pip보다 10~100배 빠르다고 설명합니다.

내 컴퓨터에서 재 보려면:

python3 -m venv a && time a/bin/pip install pandas fastapi requests matplotlib
uv venv b && time uv pip install --no-cache -p b pandas fastapi requests matplotlib

속도 말고 갈아타는 이유

uv는 여러 도구가 하던 일을 하나로 합칩니다. 저장소 README 기준으로 pip, pip-tools, pipx, poetry, pyenv, twine, virtualenv를 대신합니다.

  • 가상환경: uv venv
  • 파이썬 버전 설치·전환: uv python install 3.13
  • 프로젝트 의존성 관리와 잠금 파일: uv add, uv sync
  • 도구 실행: uvx ruff (pipx 대신)

바꾸는 법: pip 앞에 uv

기존 습관 그대로 쓰려면 이것만 바꾸면 됩니다.

uv venv                         # .venv 만들기
uv pip install pandas           # pip install 대신
uv pip install -r requirements.txt

주의: 가상환경이 없으면 거부한다

pip는 가상환경이 없으면 시스템 파이썬에 그냥 설치하려 들지만, uv는 멈추고 이렇게 알려 줍니다.

$ uv pip install requests
error: No virtual environment found; run `uv venv` to create an environment,
or pass `--system` to install into a non-virtual environment

처음엔 당황스럽지만 실수로 시스템 파이썬을 더럽히지 않게 막아 주는 동작입니다. uv venv를 먼저 만들거나, 시스템에 깔아야 할 때만 --system을 붙이세요.

또 하나, uv pip install은 pip처럼 설치만 하고 pyproject.toml에는 기록하지 않습니다. 팀과 의존성을 공유하려면 uv add를 씁니다.

오늘 할 일

지금 쓰는 프로젝트에서 uv venv를 만들고, 평소 치던 pip install 앞에 uv를 붙여 보세요. 기다리는 시간이 줄어든 게 바로 느껴집니다.

가상환경과 포트 관리를 GUI로 하고 싶다면: uvws를 만든 이유

김현빈 Developer & Writer

기술, 포스팅 관련 질문, 프로젝트 협업 등 연락주시면 언제든지 회신 드립니다.

esc

↑↓ 고르기↵ 열기? 단축키

해변에서 주운 것

읽으러 가기 →
guest@beachcombers — zsh

단축키

⌘K 또는 /
글·작업·개발일지 찾기
R
해변 산책 — 아무 글 하나 줍기
`
터미널 열기
←→
쪽 넘기기 (휠·스와이프도 됩니다)
?
이 안내
esc
닫기