Post

Python 02. uv

Python 02. uv

uv

  • uv: Rust로 작성된 초고속 Python 패키지 및 프로젝트 관리자

1. uv 설치하기

  • macOS / Linux
    1
    
    curl -LsSf https://astral.sh/uv/install.sh | sh
    
  • Windows (PowerShell)
    1
    
    powershell -c "irm https://astral.sh/uv/install.ps1 | iex"
    

2. 프로젝트 기반 관리

최신 uvPoetrynpm처럼 pyproject.toml을 사용하여 프로젝트 단위로 가상환경을 자동 관리한다.

2.1 프로젝트 초기화

1
uv init

또는

1
2
uv init my-project
cd my-project
  • pyproject.toml 파일이 생성되고, 프로젝트 전용 가상환경이 자동으로 설정된다.

2.2 패키지 추가

  • pyproject.toml에 의존성을 기록하고 설치한다.
1
uv add requests numpy
  • 자동으로 의존성을 해결하고 uv.lock 파일을 생성한다.

2.3 동기화

  • pyproject.tomluv.lock에 기록된 의존성을 설치한다.
1
uv sync

2.4 스크립트 실행

1
uv run python my_script.py

3. 파이썬 버전 관리

  • 설치 가능한 파이썬 버전 목록 확인
1
uv python list
  • 특정 파이썬 버전 설치
1
uv python install 3.12
  • 프로젝트별 파이썬 버전 설정
1
uv pin 3.11

4. pyproject.toml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
[project]
name = "my-project"
version = "0.1.0"
dependencies = [
    "flask",
    "requests",
]

[tool.uv]
dev-dependencies = [
    "pytest",
    "black",
]

[[tool.uv.index]]
url = "https://pypi.org/simple"
default = true
  • [project]: 프로젝트 메타데이터 및 의존성
  • [tool.uv]: 개발 의존성 및 기타 설정
    • dev-dependencies: 실제 서비스가 실행될 때(운영 환경)는 필요 없지만, 개발자가 코드를 짜거나 테스트할 때만 필요한 패키지들
  • [[tool.uv.index]]: 패키지 인덱스 설정
    • 패키지를 어디서 가져올지 지정
    • url: 패키지 인덱스 URL
    • default: 기본 인덱스 여부

This post is licensed under CC BY 4.0 by the author.