Skip to content
Go back

uv란

Updated:
Edit page

Table of contents

Open Table of contents

개요

파이썬에는 여러가지 패키지 매니징 툴들이 있다.
pip, conda, poetry 등 여러가지 툴들이 있고 그 중에서 pip가 가장 보편적이면서 많이 쓰인 툴이다.

conda

conda는 주로 NumPy, SciPy 같은 과학 컴퓨팅 라이브러리를 쉽게 설치하고자 하는 목적에서 개발되었다.
하지만 별도의 패키지 저장소(Anaconda Cloud, conda-forge)를 사용하고, pip 와는 분리된 자체 의존성 해석 방식, 가상환경 관리 방식을 채택하고 있어서 생태계가 이원화되는 문제를 야기했다.

poetry

poetry는 pyproject.toml과 poetry.lock 기반으로 의존성을 엄격히 고정하고, 여러 플랫폼에서 재현 가능한 빌드를 제공한다는 점에서 각광을 받았다.
단점으로는, 복잡한 의존성을 가진 프로젝트에서 해석 속도가 느리다는 점이 종종 지적되었다.

uv란

uv는 Rust로 작성된 고속 의존성 해석 엔진을 앞세워, 가상환경 생성, 의존성 관리, 파이썬 버전 관리, 패키징, 포매터/린터 같은 서드파티 도구 실행을 한번에 알아서 처리해준다.
주요 특징으로는 다음과 같다.

성능(Performance)

사용 편의성(Usability)

사용법

  1. 프로젝트 생성
uv init uv-demo
cd uv-demo
uv-demo/
├── .python-version
├── .gitignore
├── pyproject.toml
├── hello.py
└── README.md

성능 비교

도구 설치 시간 pip 18.3초 poetry 6.3초 uv 2.3초
uv가 pip 대비 8배, poetry 대비 3배 가까이 빠른 결과가 나왔다.
실제 대규모 프로젝트에서는 의존성 충돌이나 빌드 과정이 더 복잡해져, uv의 속도 우위가 더욱 뚜렷해질 가능성이 크다.
자세한 성능비교내용은 아래 참고 사이트에 기재되어있다.

인터랙티브 개발과 uv

동일한 .venv 가상 환경을 IDE가 바로 인식하도록 해준다.
예를 들어, uv add — dev ipykernel 명령을 통해 개발용 의존성(dev dependency group) 으로 ipykernel을 설치해두면, IDE가 이를 자동으로 감지해 가상환경 커널을 연결한다.

uv add -r requirements.txt  # 주요 의존성 설치
uv add --dev ipykernel      # 개발용(인터랙티브) 의존성 추가

이로써 주피터 노트북처럼 별도의 커널을 생성·관리할 필요가 현저히 줄어든다.
팀원들이 다른 에디터를 쓰더라도, uv sync만 하면 동일한 .venv 를 재현할 수 있다.

uv 명령어 모음

uv init

uv add <패키지명>

uv sync

uv run <파일명.py>

uvx <툴> (uv tool run 명령의 축약형)

참고

참고 사이트 이동


Edit page
Share this post on:

Previous Post
DB 암호화
Next Post
vllm 서비스환경 구축