Uv - обзор - 2026

Материал из Wiki - Iphoster - the best ever hosting and support. 2005 - 2026
Перейти к:навигация, поиск

uv — современный высокопроизводительный менеджер пакетов, виртуальных окружений и версий Python, разработанный компанией Astral Software и написанный на языке Rust. По состоянию на 2026 год инструмент стал одним из наиболее быстрорастущих в экосистеме Python, объединив функциональность pip, pipx, virtualenv, Poetry и pyenv в едином бинарном файле.

История и предпосылки

Первый публичный релиз uv состоялся в феврале 2024 года. К 2026 году инструмент прошёл несколько крупных мажорных версий, достигнув стабильности уровня production. Разработка мотивирована желанием создать замену традиционным Python-инструментам, которые страдают от низкой производительности из-за реализации на чистом Python и фрагментированности экосистемы.

Ключевые возможности

Управление версиями Python

uv позволяет устанавливать и переключать версии Python (включая CPython и PyPy) командами:

uv python install 3.12
uv python install pypy@3.10
uv python pin 3.12

Инструмент автоматически загружает и собирает дистрибутивы Python, избавляя от необходимости использования pyenv.

Проекты и зависимости

uv поддерживает стандарт PEP 621 с конфигурацией в pyproject.toml. Основные команды:

uv init my-project     # создать новый проект
uv add requests        # добавить зависимость
uv sync                # синхронизировать окружение
uv lock                # сгенерировать uv.lock
uv run main.py         # запустить в окружении проекта

Файл uv.lock обеспечивает воспроизводимость окружений (аналог lock-файлов в Poetry и npm).

Управление инструментами

Замена pipx: изоляция и запуск CLI-приложений без установки в системный Python:

uv tool install ruff
uvx aider-chat         # запуск без установки
uv tool list
uv tool upgrade --all

Pip-совместимый интерфейс

Для миграции с pip доступен режим полной совместимости:

uv pip install -r requirements.txt
uv pip list --outdated
uv pip compile pyproject.toml -o requirements.txt

Управление скриптами

uv поддерживает запуск Python-скриптов с inline-зависимостями (PEP 723):

# /// script
# dependencies = ["requests"]
# ///
import requests
print(requests.get('https://example.org'))
uv run script.py

Производительность

Благодаря реализации на Rust и эффективному кэшированию uv в 10–100 раз быстрее pip при установке пакетов. Разрешение зависимостей (resolution) происходит на порядок быстрее Poetry. Кэш централизован и переиспользуется между проектами, версиями Python и платформами.

Интеграции

  • Docker: официальный образ ghcr.io/astral-sh/uv с оптимизациями для кэширования и мультистейдж-сборок
  • GitHub Actions: официальное действие astral-sh/setup-uv
  • GitLab CI/CD, Pre-commit, Renovate, Dependabot — нативная поддержка
  • Реестры: PyPI, Azure Artifacts, Google Artifact Registry, AWS CodeArtifact, JFrog Artifactory
  • Фреймворки: FastAPI, PyTorch, Jupyter, marimo, Bazel, AWS Lambda, Coiled

Сравнение с аналогами

Возможность uv pip pipx virtualenv Poetry conda
Установка пакетов
Виртуальные окружения
Управление версиями Python
Lock-файл
Запуск CLI без установки
Inline-зависимости скриптов
Кроссплатформенность
Производительность 10–100× быстрее pip ~ в 10× медленнее uv

Установка

macOS (Homebrew)

brew install uv

Linux / macOS (standalone)

curl -LsSf https://astral.sh/uv/install.sh | sh

Windows

powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

Docker

FROM ghcr.io/astral-sh/uv:latest

Дополнительные способы

PyPI, pipx, Cargo (cargo install uv), WinGet, Scoop, MacPorts.

Экосистема

uv является частью экосистемы инструментов Astral, включающей также Ruff (линтер и форматтер Python). Оба инструмента используются совместно: Ruff для качества кода, uv для управления зависимостями и окружениями.

Резюме

uv — это современный, чрезвычайно быстрый и многофункциональный инструмент управления Python-окружениями, который к 2026 году стал де-факто стандартом для новых проектов. Он заменяет pip, pipx, virtualenv, pyenv и частично Poetry, предлагая единый интерфейс с производительностью на порядки выше традиционных аналогов. Поддержка PEP 723 (inline-зависимости в скриптах) и интеграция с основными CI/CD-системами и облачными реестрами делают uv универсальным решением как для локальной разработки, так и для production-окружений.

Ссылки

×
Реклама
ИКС