🐍 Python 에서 uv
사용 방법
안녕하세요! 오늘은 Python 개발자들에게 새로운 바람을 불러일으키고 있는 uv에 대해 알아보려고 합니다.
이미 pip
, venv
, poetry
등 여러 도구들을 사용해보셨을 텐데요. uv
는 그 모든 것을 한 번에 해결할 수 있는 고성능 패키지 관리 도구입니다.
🌪️ uv란?
uv
는 Rust로 작성된 초고속 Python 패키지 관리 도구입니다. 유명한 Python 인플루언서인 @Faster CPython의 저자들이 만든 이 도구는 다음과 같은 특징을 가지고 있습니다:
- 🚀 매우 빠른 설치 속도 (기존
pip
보다 최대 수십 배 빠름) - 🔧 단일 바이너리로 설치 및 관리가 간편
- 📦
pip
,pip-tools
,venv
,compile
,sync
등의 다양한 기능 통합 - 🌐 네트워크 병목 감소를 위한 병렬 의존성 다운로드
📦 uv 설치 방법
1. 공식 설치 명령어
전역 환경을 고려하여 아래 명령어 이용
# On Windows.
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
# On macOS and Linux.
curl -LsSf https://astral.sh/uv/install.sh | sh
2. pip를 이용한 설치
pip install uv
💡 uv 주요 사용법
1. 가상 환경 생성 (venv
대체)
uv venv
기본적으로 .venv
라는 이름의 가상환경이 생성됩니다. 다른 경로를 지정하고 싶다면:
uv venv myenv
활성화는 일반 venv
와 동일하게 합니다:
source .venv/bin/activate
2. 패키지 설치 (pip install
대체)
uv install requests
복수 패키지를 동시에 설치 가능:
uv install numpy pandas matplotlib
개발용 패키지는 -d
옵션으로 설치:
uv install -d pytest flake8
3. requirements.txt 설치
uv install -r requirements.txt
심지어 pip-compile
처럼 lock 파일도 생성 가능합니다:
uv pip compile requirements.in -o requirements.txt
4. 패키지 업데이트
uv pip install --upgrade requests
5. 패키지 삭제
uv pip uninstall requests
6. lock 파일만 생성 (빌드 오버헤드 없이)
uv pip compile requirements.in
7. 프로젝트 초기화
uv init
기본적인 pyproject.toml
과 디렉토리 구조를 자동으로 생성해줍니다.
⚙️ pyproject.toml과 함께 사용하기
uv
는 pyproject.toml
을 기본으로 지원합니다. 예시:
[project]
name = "my_project"
version = "0.1.0"
dependencies = [
"requests",
"numpy",
]
그 후 아래 명령어로 한 번에 설치:
uv install
개발 의존성도 지원:
[project.optional-dependencies]
dev = ["pytest", "black"]
설치 시:
uv install -d
🏁 마무리
uv
는 Python 생태계의 다양한 도구들을 하나의 고성능 CLI로 통합하여, 개발자가 더 빠르고 편리하게 작업할 수 있도록 도와줍니다. 아직 초기 단계이긴 하지만, 이미 충분히 실무에서 사용 가능한 수준이며, 향후 Python 패키지 관리의 표준 도구가 될 가능성이 매우 큽니다.
✅ 앞으로pip
,venv
,pip-tools
대신uv
하나로!