Rust로 작성된 매우 빠른 Python 패키지 및 프로젝트 관리자입니다.
웜 캐시를 사용하여 Trio의 종속성을 설치합니다.
pip
, pip-tools
, pipx
, poetry
, pyenv
, twine
, virtualenv
등을 대체하는 단일 도구입니다.pip
보다 10-100배 빠릅니다.curl
또는 pip
통해 Rust나 Python 없이 설치할 수 있습니다.uv는 Ruff의 창시자인 Astral의 지원을 받습니다.
독립 실행형 설치 프로그램을 사용하여 uv를 설치합니다.
# On macOS and Linux.
curl -LsSf https://astral.sh/uv/install.sh | sh
# On Windows.
powershell -ExecutionPolicy ByPass -c " irm https://astral.sh/uv/install.ps1 | iex "
또는 PyPI에서:
# With pip.
pip install uv
# Or pipx.
pipx install uv
독립 실행형 설치 프로그램을 통해 설치된 경우 uv는 최신 버전으로 자체 업데이트될 수 있습니다.
uv self update
자세한 내용과 대체 설치 방법은 설치 설명서를 참조하세요.
uv의 문서는 docs.astral.sh/uv에서 볼 수 있습니다.
또한 uv help
사용하여 명령줄 참조 문서를 볼 수 있습니다.
uv는 rye
또는 poetry
과 유사한 잠금 파일, 작업 공간 등에 대한 지원을 통해 프로젝트 종속성과 환경을 관리합니다.
$ 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는 또한 uv로 관리되지 않는 프로젝트 빌드 및 게시도 지원합니다. 자세한 내용은 게시 가이드를 참조하세요.
uv는 pipx
와 유사하게 Python 패키지에서 제공하는 명령줄 도구를 실행하고 설치합니다.
uvx
( uv tool run
의 별칭)를 사용하여 임시 환경에서 도구를 실행합니다.
$ 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
시작하려면 도구 설명서를 참조하세요.
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 Python 3.12.0
Creating virtual environment at: .venv
Activate with: source .venv/bin/activate
$ uv run --python [email protected] -- python --version
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 [email protected]
Pinned `.python-version` to `[email protected]`
시작하려면 Python 설치 설명서를 참조하세요.
uv는 단일 파일 스크립트에 대한 종속성과 환경을 관리합니다.
새 스크립트를 만들고 종속성을 선언하는 인라인 메타데이터를 추가합니다.
$ echo ' import requests; print(requests.get("https://astral.sh")) ' > example.py
$ uv add --script example.py requests
Updated `example.py`
그런 다음 격리된 가상 환경에서 스크립트를 실행합니다.
$ uv run example.py
Reading inline script metadata from: example.py
Installed 5 packages in 12ms
시작하려면 스크립트 설명서를 참조하세요.
uv는 일반적인 pip
, pip-tools
및 virtualenv
명령에 대한 드롭인 대체 기능을 제공합니다.
uv는 종속성 버전 재정의, 플랫폼 독립적 해결, 재현 가능한 해결, 대체 해결 전략 등과 같은 고급 기능으로 인터페이스를 확장합니다.
uv pip
인터페이스를 통해 기존 워크플로우를 변경하지 않고 uv로 마이그레이션하고 10~100배의 속도 향상을 경험해 보세요.
요구 사항을 플랫폼 독립적인 요구 사항 파일로 컴파일합니다.
$ uv pip compile docs/requirements.in
--universal
--output-file docs/requirements.txt
Resolved 43 packages in 12ms
가상 환경을 생성합니다:
$ uv venv
Using Python 3.12.3
Creating virtual environment at: .venv
Activate with: source .venv/bin/activate
잠긴 요구 사항을 설치합니다.
$ uv pip sync docs/requirements.txt
Resolved 43 packages in 11ms
Installed 43 packages in 208ms
+ babel==2.15.0
+ black==24.4.2
+ certifi==2024.7.4
...
시작하려면 pip 인터페이스 설명서를 참조하세요.
uv의 플랫폼 지원 문서를 참조하세요.
uv의 버전 관리 정책 문서를 참조하세요.
우리는 모든 수준의 경험을 가진 기여자를 지원하는 데 열정을 갖고 있으며 여러분이 프로젝트에 참여하는 것을 보고 싶습니다. 시작하려면 기여 가이드를 참조하세요.
uv의 종속성 해결 프로그램은 내부적으로 PubGrub을 사용합니다. PubGrub 관리자, 특히 Jacob Finkelman의 지원에 감사드립니다.
uv의 Git 구현은 Cargo를 기반으로 합니다.
uv의 최적화 중 일부는 pnpm, Orogene 및 Bun에서 본 훌륭한 작업에서 영감을 받았습니다. 우리는 또한 Nathaniel J. Smith의 Posy로부터 많은 것을 배웠고 Windows 지원을 위해 트램폴린을 적용했습니다.
uv는 다음 중 하나에 따라 라이센스가 부여됩니다.
귀하의 선택에 따라.
달리 명시적으로 명시하지 않는 한, Apache-2.0 라이센스에 정의된 대로 귀하가 uv에 포함하기 위해 의도적으로 제출한 기여는 추가 이용약관 없이 위와 같이 이중 라이센스가 부여됩니다.