- uv는 Rust로 작성된 Python 패키지 및 프로젝트 관리자로,
pip,pip-tools,pipx,poetry,pyenv,twine,virtualenv등을 대체하는 단일 도구를 지향함 pip보다 10~100배 빠른 성능을 내며, 기존 워크플로를 크게 바꾸지 않고uv pip인터페이스로 속도 향상을 얻을 수 있음- 프로젝트 의존성·환경 관리, 범용 lockfile, Cargo 스타일 워크스페이스, 전역 캐시 기반 의존성 중복 제거를 지원함
- 단일 파일 스크립트의 인라인 의존성 메타데이터, Python 버전 설치·전환, Python 패키지로 배포된 CLI 도구 실행·설치를 제공함
- macOS, Linux, Windows에서 동작하고, Rust나 Python 없이
curl또는pip로 설치 가능하며, standalone 설치 시uv self update로 자체 업데이트할 수 있음
uv가 해결하려는 범위
- uv는 Rust로 작성된 Python 패키지 및 프로젝트 관리자임
- 하나의 도구로 여러 Python 생태계 도구를 대체하는 것을 목표로 함
pippip-toolspipxpoetrypyenvtwinevirtualenv
- BENCHMARKS.md에 따르면
pip보다 10~100배 빠름 - uv는 Astral이 지원하며, Astral은 Ruff와 ty의 제작자임
주요 기능
-
프로젝트 관리
- 의존성과 환경을 관리하고, lockfile과 워크스페이스를 지원함
rye나poetry와 비슷한 방식으로 프로젝트를 초기화하고 의존성을 추가하며 실행할 수 있음- 범용 lockfile을 제공함
- Cargo 스타일 워크스페이스를 지원해 확장 가능한 프로젝트 구성을 다룸
-
스크립트 실행
- 단일 파일 스크립트의 의존성과 환경을 관리함
- 인라인 의존성 메타데이터를 지원함
uv run example.py처럼 스크립트를 격리된 가상 환경에서 실행할 수 있음
-
도구 실행 및 설치
- Python 패키지로 제공되는 CLI 도구를 실행하거나 설치함
uvx는uv tool run의 별칭이며, 임시 환경에서 도구를 실행함uv tool install ruff처럼 도구를 설치할 수 있음
-
Python 버전 관리
- Python 버전을 설치하고 빠르게 전환할 수 있음
uv python install 3.12 3.13 3.14로 여러 버전을 설치할 수 있음uv python pin 3.11로 현재 디렉터리에 사용할 Python 버전을 고정할 수 있음
pip 호환 인터페이스
- uv는
pip,pip-tools,virtualenv의 일반적인 명령을 대체하는 호환 인터페이스를 제공함 uv pip인터페이스를 사용하면 기존 워크플로를 바꾸지 않고pip대비 10~100배 속도 향상을 경험할 수 있음- 확장 기능도 포함함
- 의존성 버전 override
- 플랫폼 독립적 해석
- 재현 가능한 해석
- 대체 해석 전략
- 예시 워크플로
uv pip compile requirements.in --universal --output-file requirements.txt로 플랫폼 독립적인 requirements 파일을 생성함uv venv로 가상 환경을 생성함uv pip sync requirements.txt로 고정된 requirements를 설치함
설치와 문서
- standalone installer로 설치 가능함
- macOS와 Linux:
curl -LsSf https://astral.sh/uv/install.sh | sh - Windows:
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
- macOS와 Linux:
- PyPI에서도 설치할 수 있음
pip install uvpipx install uv
- standalone installer로 설치한 경우
uv self update로 최신 버전으로 자체 업데이트할 수 있음 - 문서는 docs.astral.sh/uv에 있으며, 명령줄 참조는
uv help로 볼 수 있음