파이썬 (Python)

Poetry 보다 좋은 uv

Wibaek 2025. 6. 5. 16:03
728x90

개요

Python 프로젝트를 시작할 때, 환경 설정과 의존성 관리는 시간이 꽤 걸리는 작업이다. 그래서 Poetry등의 도구가 등장했고, pyproject.toml 기반의 명확한 구조와 편의성 덕분에 나 역시 Poetry를 애용해왔다.

하지만 최근 등장한 새로운 패키지 매니저 uv를 써보고 나서는 생각이 바뀌었다.

속도, 실용성, 그리고 확장성 면에서 uv는 Poetry의 상위 호환에 가깝다.

이 글에서는 uv를 어떻게 실제로 개발 환경에서 활용할 수 있는지를 공유하려 한다.

uv

uv는 Astral에서 개발한 초고속 Python 패키지 매니저로, 기존의 pip, venv, pip-tools, setuptools, poetry의 기능을 대체하거나 통합한다.

Rust로 구현되어 있어 패키지 설치 속도가 압도적으로 빠르며, 다양한 Python 프로젝트에 즉시 적용할 수 있다.

핵심 특징:

  •  극단적으로 빠른 의존성 설치 (Rust 기반 resolver)
  • 📦 requirements.txt, pyproject.toml 모두 지원
  • 🔒 Git conflict에 강한 uv.lock (TOML 포맷)
  • 🧪 uv venv, uv pip, uv run 등 단일 명령어로 전체 개발 환경 구성 가능
  • 🔁 Poetry처럼 pyproject.toml 기반 관리도 가능하지만, 훨씬 유연함

설치 방법

# Mac에서 설치
brew install uv
# 또는
curl -LsSf <https://astral.sh/uv/install.sh> | sh

# Windows에서 설치
powershell -ExecutionPolicy ByPass -c "irm <https://astral.sh/uv/install.ps1> | iex"

# pip으로 설치(비권장)
pip install uv

Installation | uv

실전 예제: uv로 프로젝트 시작하기

uv init

# 의존성 추가
uv add requests

# 개발 의존성 추가
uv add --dev pytest

# requirements.txt 방식
uv pip freeze > requirements.txt
uv pip freeze --dev > requirements-dev.txt

# 실행
uv run ruff check
uv run python manage.py

# 최초 의존성 설치
uv venv
uv sync # pyproject.toml 기반의 경우
uv pip install -r requirements.txt # requirements.txt 기반의 경우

Reference

PIP를 대체하는 UV 사용법 가이드

 

PIP를 대체하는 UV 사용법 가이드

 

devocean.sk.com

 

uv

 

uv

An extremely fast Python package and project manager, written in Rust. Installing Trio's dependencies with a warm cache. 🚀 A single tool to replace pip, pip-tools, pipx, poetry, pyenv, twine, virtualenv, and more. ⚡️ 10-100x faster than pip. 🗂️

docs.astral.sh

 

728x90