Чрезвычайно быстрый менеджер пакетов и проектов Python, написанный на Rust.
Установка зависимостей Trio с теплым кешем.
pip
, pip-tools
, pipx
, poetry
, pyenv
, twine
, virtualenv
и других.pip
.curl
или pip
.uv поддерживается Astral, создателями Ruff.
Установите 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 запускает и устанавливает инструменты командной строки, предоставляемые пакетами Python, аналогичные pipx
.
Запустите инструмент в эфемерной среде, используя 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, не меняя существующие рабочие процессы, и испытайте ускорение в 10–100 раз с помощью интерфейса uv pip
.
Скомпилируйте требования в независимый от платформы файл требований:
$ 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, особенно Джейкобу Финкельману, за поддержку.
Реализация Git в uv основана на Cargo.
Некоторые оптимизации uv вдохновлены великолепной работой, которую мы видели в pnpm, Orogene и Bun. Мы также многому научились у Posy Натаниэля Дж. Смита и адаптировали его батут для поддержки Windows.
УФ имеет лицензию любого из
по вашему выбору.
Если вы явно не указали иное, любой вклад, намеренно отправленный вами для включения в uv, как это определено в лицензии Apache-2.0, должен иметь двойную лицензию, как указано выше, без каких-либо дополнительных положений и условий.