Uv

UV(Ultraviolet)는 최신 패키지 관리 도구이다.
Rust로 작성된 UV는 기존의 pip, pip-tools, virtualenv 등을 대체할 수 있는 초고속 파이썬 패키지 설치 및 의존성 해결 도구이다.

주요 특징

  1. 속도: UV는 기존 도구들보다 10-100배 빠른 성능을 자랑한다. 캐시를 사용하지 않을 때도 pip나 pip-tools보다 8-10배 빠르며, 캐시 사용 시 80-115배의 속도 향상을 보인다.
  2. 다목적성: UV는 pip, pip-tools, virtualenv, pyenv 등 여러 도구의 기능을 단일 바이너리로 통합했다.
  3. Python 버전 관리: UV를 사용하면 여러 Python 버전을 쉽게 설치하고 관리할 수 있다.
  4. 프로젝트 관리: pyproject.toml 파일을 사용하여 프로젝트 의존성을 관리한다.
  5. 스크립트 지원: 단일 파일 스크립트에 대한 의존성 관리와 실행을 지원한다.

설치 및 사용

UV는 다음과 같이 설치할 수 있다:

1
2
3
4
5
# macOS 및 Linux
curl -LsSf https://astral.sh/uv/install.sh | sh

# Windows
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

pip를 통해 설치할 수도 있다:

1
pip install uv

기본 사용법

  1. 가상 환경 생성:

    1
    
    uv venv
    
  2. 패키지 설치:

    1
    
    uv pip install <package_name>
    
  3. 의존성 파일 생성:

    1
    
    uv pip compile requirements.in -o requirements.txt
    
  4. 프로젝트 실행:

    1
    
    uv run <script.py>
    

UV의 장점

  1. 성능 최적화: 전역 모듈 캐시를 사용하여 의존성 재다운로드나 재빌드를 최소화한다.
  2. 디스크 공간 효율성: Copy-on-Write 및 하드링크를 활용하여 디스크 공간 사용을 최적화한다.
  3. 호환성: 기존 pip 및 pip-tools 워크플로우와 호환되어 쉽게 도입할 수 있다.
  4. 통합된 도구: 여러 도구의 기능을 하나로 통합하여 개발 환경 설정을 단순화한다.

참고 및 출처