Python 개발자들은 패키지 관리와 가상 환경 설정을 위해 주로 pip과 poetry를 사용해 왔습니다. 그러나 최근 Rust로 개발된 초고속 Python 패키징 도구인 uv가 등장하여 주목받고 있습니다. 
uv란 무엇인가요?
uv는 Rust로 작성된 매우 빠른 Python 패키지 설치 및 관리 도구로, pip 및 pip-tools의 워크플로우를 대체하도록 설계되었습니다. 기존 도구보다 10배에서 100배까지 빠른 성능을 자랑하며, 단일 정적 바이너리로 제공되어 Python 버전에 따라 pip 설치를 관리할 필요 없이 독립적으로 설치할 수 있습니다. 
uv의 주요 기능
• 가상 환경 생성: uv venv 명령을 통해 .venv 디렉토리에 가상 환경을 생성할 수 있습니다.
uv venv
특정 Python 버전을 지정하려면 --python 옵션을 사용합니다.
uv venv --python 3.12
• 패키지 설치: 가상 환경을 활성화한 후, uv pip install 명령으로 패키지를 설치할 수 있습니다.
. .venv/bin/activate
uv pip install -r requirements.txt
uv pip install gunicorn
• 패키지 동기화: uv pip sync 명령을 사용하여 requirements.txt 파일과 가상 환경을 동기화할 수 있습니다.
uv pip sync requirements.txt
• 시스템 환경에 설치: Docker 등의 환경에서 가상 환경 없이 시스템에 직접 패키지를 설치하려면 --system 옵션을 지정합니다.
uv pip install --system -r requirements.txt
uv 설치 방법
uv는 다양한 방법으로 설치할 수 있습니다.
• Homebrew를 통한 설치:
brew install uv
• pip를 통한 설치:
pip install uv
• 스크립트를 통한 설치:
curl -LsSf https://astral.sh/uv/install.sh | sh
uv의 장점
• 높은 성능: 글로벌 모듈 캐시를 활용하여 의존성을 다시 다운로드하거나 빌드하지 않으며, 지원되는 파일 시스템에서 Copy-on-Write 및 하드링크를 활용하여 디스크 공간 사용을 최소화합니다. 
• 간단한 설치: 단일 정적 바이너리로 제공되어 Python 버전에 따라 pip 설치를 관리할 필요 없이 독립적으로 설치할 수 있습니다.
• 기존 워크플로우와의 호환성: pip 및 pip-tools의 API를 지원하여 기존 프로젝트에서 구성 변경 없이 사용할 수 있습니다.
결론
uv는 Python 패키지 관리의 새로운 대안으로, 빠르고 효율적인 패키지 설치와 관리를 제공합니다. Rust로 구현되어 높은 성능을 자랑하며, 기존 도구들과의 호환성도 유지하고 있어 Python 개발자들에게 유용한 도구가 될 것입니다.
더 자세한 내용은 uv 공식 문서를 참고하세요. 
'Programming > Python' 카테고리의 다른 글
decorator - 데커레이터 (0) | 2024.10.30 |
---|---|
python 으로 asdict, from_dict 직접 구현 (0) | 2023.12.18 |
docker compose - python default 컨테이너 만들기 (0) | 2023.04.05 |
try except를 깔끔하게 사용하기 - suppress (0) | 2023.01.31 |
datetime, str, timestamp 변환 (0) | 2021.01.13 |
댓글