Python uv 설정법
Index
1, uv + requirements.txt 으로 관리하기
2, uv + pyproject.toml 으로 관리하기
About uv?
uv는 Python 패키지/프로젝트 관리 도구입니다. 쉽게 말해 pip, pip-tools, virtualenv, poetry, pyenv 일부 역할을 빠르게 처리하려는 Rust 기반 도구.
- 주요 용도는 다음과 같습니다.
- 패키지 설치: uv pip install requests
- 가상환경 생성: uv venv
- 프로젝트 생성/관리: uv init, uv add, uv remove
- 의존성 잠금 파일 관리: uv lock, uv sync
- Python 버전 설치/실행: uv python install 3.12
- 스크립트 실행: uv run script.py 짧게 정리하면: uv는 Python 개발 환경을 빠르고 일관되게 만들기 위한 현대적인 패키지/프로젝트 매니저입니다.
uv 설치
# --- uv 설치
curl -LsSf https://astral.sh/uv/install.sh | sh
uv + pyproject.toml 으로 관리하기
TOML은 설정 파일 형식입니다. 확장자는 .toml이고, 뜻은 Tom's Obvious, Minimal Language
- uv가 'pyproject.toml'을 읽어서 의존성을 관리한다.
# 기존 프로젝트의 경우 --- 설치 pyproject.toml 기준으로 python가상 환경 설정 및 의존성 설치
uv sync
# --- 생성
# 기본 `.venv` 가상환경 생성
uv venv
uv venv --python 3.11
# --- 초기화(필요시)
# 기존에 pyproject.toml이 없는경우 초기화
uv init
# --- 설치
# pyproject.toml 기준으로 의존성 및 프로젝트 동기화
uv sync
# 프로젝트 의존성 추가
# pyproject.toml, uv.lock, 현재 가상환경에 함께 반영
uv add requests
# 참고:
# uv pip install requests 는 현재 가상환경에만 설치되고
# pyproject.toml 에는 자동 반영되지 않음
uv + requirements.txt 으로 관리하기
# --- 생성
#`.venv` 이름으로 Python 가상환경을 생성합니다.
uv venv .venv
uv venv .venv --python 3.11
# --- 설치
# 기존의 requirements 의존성이 있다면 설치하기
uv pip install -r requirements.txt
## 설치 확인
python --version
uv pip list
실행, 가상환경 활성화, 초기화
# --- 실행
# 가상환경을 직접 활성화하지 않고 실행
uv run python main.py
# --- 가상환경 활성화
# 가상환경을 직접 활성화해서 실행할 수도 있음
source .venv/bin/activate
python main.py
# 가상환경 종료
deactivate
# --- 초기화
rm -rf .venv
# 락 파일까지 새로 만들고 싶으면:
rm -rf .venv uv.lock
# 캐시까지 정리하고 싶으면:
uv cache clean && rm -rf .venv uv.lock
uv tool 명령어
uv tool은 Python 패키지가 제공하는 CLI 도구를 프로젝트 가상환경과 분리해서 실행하거나 설치하는 명령어입니다. pipx와 비슷하게 ruff, black, httpie 같은 실행 도구를 독립된 환경에서 관리할 때 사용합니다.
uv tool run: 도구를 설치하지 않고 일회성으로 실행uvx:uv tool run의 짧은 별칭uv tool install: 도구를 사용자 환경에 설치하고 PATH에서 실행 가능하게 함uv tool list: 설치된 도구 목록 확인uv tool upgrade: 설치된 도구 업데이트uv tool uninstall: 설치된 도구 제거uv tool dir: uv가 설치형 도구 환경을 저장하는 위치 확인
# 설치하지 않고 일회성 실행
uv tool run ruff check .
# uv tool run의 축약형
uvx ruff check .
# 도구 설치
uv tool install ruff
# 설치된 도구 실행
ruff check .
# 설치된 도구 목록 확인
uv tool list
# 도구 업데이트
uv tool upgrade ruff
uv tool upgrade --all
# 도구 제거
uv tool uninstall ruff
# 도구 설치 위치 확인
uv tool dir
패키지 이름과 실행 파일 이름이 다르거나, 특정 패키지에서 제공하는 실행 파일을 명확히 지정해야 할 때는 --from을 사용합니다.
# httpie 패키지에서 제공하는 http 실행 파일 실행
uv tool run --from httpie http --version
# 특정 Python 버전으로 도구 실행
uvx --python 3.11 ruff check .
# 특정 Python 버전으로 도구 설치
uv tool install --python 3.11 ruff
프로젝트마다 버전을 고정해야 하는 개발 도구라면 uv add --dev ruff처럼 프로젝트 의존성으로 관리하는 편이 좋습니다. 반대로 프로젝트와 무관하게 자주 쓰는 CLI 도구라면 uv tool install이 적합합니다.
참고: uv Tools 공식 문서