2025년 5월 12일 월요일

Python 에서 UV 사용 방법

🐍 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과 함께 사용하기

uvpyproject.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 하나로!

🔗 참고 링크

안드로이드(Android) 16 소개

    안드로이드 16이 드디어 출시되었어요!  🎉 이번 포스팅에서는 안드로이드 16의 다양한 기능과 장점에 대해 자세히 알아보도록 할게요.  1. 안드로이드 16 소개 안드로이드 16은 구글의 모바일 운영 체제인 안드로이드의 최신 버전으로, 많은 ...