Programming/Python

uv - Python Package Manager

Chan_찬 2025. 1. 10. 09:56
반응형

Python 개발자들은 패키지 관리와 가상 환경 설정을 위해 주로 pip과 poetry를 사용해 왔습니다. 그러나 최근 Rust로 개발된 초고속 Python 패키징 도구인 uv가 등장하여 주목받고 있습니다. 

uv - python package manager

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 공식 문서를 참고하세요. 

728x90
반응형
BIG