uv 와 사용법

김지우·2025년 8월 2일

1. uv란 무엇인가?

uv는 Rust로 구현된 차세대 Python 패키지 및 프로젝트 매니저로, pip, pip-tools, pipx 등을 하나의 통합 CLI로 대체할 수 있다. 일단 Rust로 개발 되어서 uv가 기본적으로 기존 도구들에 비해 10~100배 가량 빠를 수 있다.

아마 설계된 목적은 기존 pip 생태계를 대체하기 위해 설계되었다.

2. 왜 uv?

여기서는 pip보다 uv가 더 좋은 이유를 설명하기 위해 uv의 특징들을 설명하려고 한다.

  • 통합된 툴체인
    • pip,pip-tools,virtualenv와 같이 기존에 분리되어 사용되던 도구들을 통합
    • 기존에는 virtualenv가 가상 환경의 생성만을 ,pip가 패키지 관리만을 담당했지만 uv는 이 두가지를 함께 관리 한다.
  • 향상된 의존성 해결
    • 고급 의존성 해결 알고리즘을 바탕으로 전체 의존성 그래프를 분석하여 모든 요구 사항을 충족하는 호환 가능한 패키지 집합 파악.
  • 효율적인 디스크 공간 관리
    • 전역 캐싱 매커니즘 활용 => 디스크의 효율적인 관리
  • 압도적인 속도와 효율성
    • pip 보다 8~10 배 빨리 의존성 설치

      • 속도 향상은 효율적인 캐싱 매커니즘과 병렬처리 능력에서 비롯
        • pip는 wheel 파일을 다운로드 하지만, uv는 메타데이터에 직접 접근하여 불필요한 중복 다운로드와 빌드과정을 피함

3. 설치 방법

  1. macOS/Linux
curl -LsSf https://astral.sh/uv/install.sh | sh
  1. Window PowerShell
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
  1. pip 또는 pipx를 활용한 설치
# pip
pip install uv
#pipx
pipx install uv

4. 기초 사용법

  1. 가상 환경 생성 및 활성화
    새로운 가상환경을 생성하는 방법. 아래 명령어는 기본적으로 현재 작업 디렉토리.venv라는 이름의 가상의 환경 디렉토리를 생성함.
$ uv venv
Using CPython 3.12.7 interpreter at: C:\Users\rlawl\anaconda3\python.exe
Creating virtual environment at: .venv
Activate with: source .venv/Scripts/activate

uv는 특정 Python 버전으로 가상 환경을 생성하는 것을 지원

uv venv --python 3.12.0
  1. 패키지 설치 및 관리
  • uv pip insatll <package_name>
    uv는 아래 커맨드에서 알 수 있듯이 pip와 동일하게 단알 패키지를 설치할 수 있다.
uv pip install langchain
Using Python 3.12.7 environment at: C:\Users\rlawl\anaconda3
Audited 1 package in 1.26s
  • uv add <package_name>
    이 명령어는 프로젝트의 pyproject.toml 파일에 의존성을 추가 하고, 해당 패키즈를 가상 환경에 설치한다.
uv add langgraph
# (가상 환경이 없다면 생성하고) langgraph 패키지를 설치하며 pyproject.toml에 의존성을 추가한다.
  • uv sync: uv.lock 파일에 정의된 의존성을 현재 가상 환경에 동기화 한다. 프로젝트의 모든 의존성을 파일에 명시된 버전으로 일관되게 설치하거나 업데이트할 때 사용
uv sync
  1. 프로젝트 초기화
  • uv init
    새로운 파이썬 프로젝트를 초기화 할 수 있음. 또 필요에 따라 pyproject.toml 파일을 생성하고, 가상환경을 만들 수 있음
$ uv init my-project
Adding `my-project` as member of workspace `C:\Users\rlawl\workspace\test`
Initialized project `my-project` at `C:\Users\rlawl\workspace\test\my-project`
  1. 기본 명령어 실행
  • uv run
    프로젝트의 가상 환경 내에서 Python 스크립트나 다른 명령어를 실행할 수 있음
uv run python main.py

해당 명령어는 실행하기 전에 프로젝트 환경이 uv.lock파일에 따라 최신 상태인지 자동으로 확인하고 필요한 경우 업데이트를 한다.

profile
프로그래밍 기록 + 공부 기록

0개의 댓글