byteforce

CPN 한국어 자습서 · 외부 문서 한국어 미러

UV 문서 · Introduction

uv 소개

uv · 원문: docs.astral.sh/uv/

아래는 원문을 한국어로 옮긴 미러입니다. 코드·명령은 원문 그대로이며, 가장 최신 정보는 하단 원문 링크에서 확인하세요.

Rust로 작성된 매우 빠른 Python 패키지(package) 및 프로젝트(project) 관리자입니다.

주요 특징

uv는 Ruff의 제작사 Astral이 지원합니다.

설치

공식 단독 설치 프로그램으로 uv를 설치합니다.

macOS 및 Linux:

코드 · 명령
$ curl -LsSf https://astral.sh/uv/install.sh | sh

Windows:

코드 · 명령
PS> powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

pip, Homebrew 등 다른 방법으로도 설치할 수 있습니다. 모든 설치 옵션은 설치 페이지를 참조하세요.

프로젝트

uv는 락파일(lockfile), 워크스페이스(workspace) 등을 지원하며 프로젝트 의존성과 환경을 관리합니다.

코드 · 명령
$ uv init example
Initialized project `example` at `/home/user/example`

$ cd example

$ uv add ruff
Creating virtual environment at: .venv
Resolved 2 packages in 170ms
   Built example @ file:///home/user/example
Prepared 2 packages in 627ms
Installed 2 packages in 1ms
 + example==0.1.0 (from file:///home/user/example)
 + ruff==0.5.4

$ uv run ruff check
All checks passed!

$ uv lock
Resolved 2 packages in 0.33ms

$ uv sync
Resolved 2 packages in 0.70ms
Checked 1 package in 0.02ms

uv로 관리되지 않는 프로젝트도 uv를 통해 빌드하고 배포할 수 있습니다.

스크립트

uv는 단일 파일 스크립트의 의존성과 환경을 관리합니다.

새 스크립트를 만들고 의존성을 선언하는 인라인 메타데이터를 추가합니다.

코드 · 명령
$ echo 'import requests; print(requests.get("https://astral.sh"))' > example.py

$ uv add --script example.py requests
Updated `example.py`

그런 다음 격리된 가상환경(virtual environment)에서 스크립트를 실행합니다.

코드 · 명령
$ uv run example.py
Reading inline script metadata from: example.py
Installed 5 packages in 12ms
<Response [200]>

도구

uv는 Python 패키지로 제공되는 커맨드라인 도구를 실행하고 설치합니다.

uvx를 사용하여 임시 환경에서 도구를 실행합니다.

코드 · 명령
$ uvx pycowsay 'hello world!'
Resolved 1 package in 167ms
Installed 1 package in 9ms
 + pycowsay==0.0.0.2
  """

  ------------ 
< hello world! >
  ------------ 
   \   ^__^
    \  (oo)\_______
       (__)\       )\/\
           ||----w |
           ||     ||

uv tool install로 도구를 설치합니다.

코드 · 명령
$ uv tool install ruff
Resolved 1 package in 6ms
Installed 1 package in 2ms
 + ruff==0.5.4
Installed 1 executable: ruff

$ ruff --version
ruff 0.5.4

Python 버전

uv는 Python을 설치하고 버전 간 빠른 전환을 지원합니다.

여러 Python 버전을 설치합니다.

코드 · 명령
$ uv python install 3.10 3.11 3.12
Searching for Python versions matching: Python 3.10
Searching for Python versions matching: Python 3.11
Searching for Python versions matching: Python 3.12
Installed 3 versions in 3.42s
 + cpython-3.10.14-macos-aarch64-none
 + cpython-3.11.9-macos-aarch64-none
 + cpython-3.12.4-macos-aarch64-none

필요에 따라 Python 버전을 다운로드합니다.

코드 · 명령
$ uv venv --python 3.12.0
Using CPython 3.12.0
Creating virtual environment at: .venv
Activate with: source .venv/bin/activate

$ uv run --python pypy@3.8 -- python
Python 3.8.16 (a9dbdca6fc3286b0addd2240f11d97d8e8de187a, Dec 29 2022, 11:45:30)
[PyPy 7.3.11 with GCC Apple LLVM 13.1.6 (clang-1316.0.21.2.5)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>>

현재 디렉터리에서 특정 Python 버전을 사용합니다.

코드 · 명령
$ uv python pin 3.11
Pinned `.python-version` to `3.11`

pip 인터페이스

uv는 일반적인 pip, pip-tools, virtualenv 명령의 드롭인(drop-in) 대체 도구로, 의존성 버전 오버라이드(override), 플랫폼 독립적 해석, 재현 가능한 해석, 대안적 해석 전략 등의 고급 기능을 제공합니다.

플랫폼 독립적인 requirements 파일로 요구사항을 컴파일합니다.

코드 · 명령
$ uv pip compile requirements.in \
   --universal \
   --output-file requirements.txt
Resolved 43 packages in 12ms

가상환경을 생성합니다.

코드 · 명령
$ uv venv
Using CPython 3.12.3
Creating virtual environment at: .venv
Activate with: source .venv/bin/activate

잠긴(locked) 요구사항을 설치합니다.

코드 · 명령
$ uv pip sync requirements.txt
Resolved 43 packages in 11ms
Installed 43 packages in 208ms
 + babel==2.15.0
 + black==24.4.2
 + certifi==2024.7.4
 ...

더 알아보기

첫 번째 단계를 확인하거나 가이드로 바로 이동하여 uv를 사용해 보세요.

원문(영어): https://docs.astral.sh/uv/ · 본 문서는 학습용 한국어 번역이며 원본의 권리는 원저작자(Astral)에게 있습니다.

원문(영어): https://docs.astral.sh/uv/