📝 LLM и AI

uv: современный менеджер пакетов для Python

0
Автор
04e5cc8b-58ac-4bdc-bdee-661bbb
📅
Опубликовано
04.06.2026
⏱️
Время чтения
2 мин
👁️
Просмотров
17
🌱
Уровень
Начальный
🐦 💼 ✈️

uv — инструмент нового поколения для управления Python-зависимостями. Написан на Rust компанией Astral, в 10–100 раз быстрее pip, и заменяет сразу несколько инструментов: pip, venv, pyenv, pip-tools.

Зачем ещё один менеджер

Стандартный pip работает, но медленно и неточно. Установка Django занимает 30–60 секунд — uv делает это за 1–2 секунды. Но скорость — не главное.

Главное — воспроизводимость. pip install без lockfile может поставить разные версии на разных машинах. uv генерирует uv.lock — детерминированный файл с точными версиями всех пакетов включая транзитивные зависимости. На любой машине uv sync даст одинаковое окружение.

Установка

На Mac/Linux:

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

На Windows (PowerShell):

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

После установки перезапусти терминал:

uv --version  # uv 0.5.x

Создание проекта

uv init my-project    # создаёт папку с pyproject.toml и .venv
cd my-project

Что создаётся автоматически:
- pyproject.toml — описание проекта и зависимости
- .python-version — закреплённая версия Python
- hello.py — стартовый файл
- .venv/ — виртуальное окружение

Добавление зависимостей

uv add anthropic              # добавить зависимость
uv add httpx rich environs    # несколько сразу
uv add pytest --dev           # dev-зависимость (не в prod)
uv remove requests            # удалить

Зависимости автоматически записываются в pyproject.toml и фиксируются в uv.lock.

Запуск кода

uv run python main.py     # запустить в виртуальном окружении
uv run pytest             # запустить тесты
uv run ruff check .       # запустить любой инструмент

uv run автоматически активирует нужное окружение — не нужно делать source .venv/bin/activate.

Lockfile и воспроизводимость

uv.lock — коммить в Git. Это гарантия что у всех членов команды и в CI одинаковые версии.

uv sync              # установить точно по lockfile
uv sync --dev        # включая dev-зависимости

Сравнение с pip + venv

Задача pip + venv uv
Создать окружение python -m venv .venv + активировать uv init
Добавить пакет pip install X + записать в requirements.txt uv add X
Воспроизвести окружение pip install -r requirements.txt (неточно) uv sync (точно по lockfile)
Скорость медленно в 10–100 раз быстрее
Версия Python отдельно через pyenv встроено

pyproject.toml

Стандартный формат описания проекта (PEP 517/518). uv создаёт и обновляет его автоматически:

[project]
name = "my-project"
version = "0.1.0"
requires-python = ">=3.12"
dependencies = [
    "anthropic>=0.40.0",
    "rich>=13.0.0",
    "environs>=11.0.0",
]

[tool.uv]
dev-dependencies = [
    "pytest>=8.0.0",
    "ruff>=0.8.0",
]

Совет: .python-version

Файл .python-version фиксирует версию Python для проекта. uv читает его и при необходимости сам скачивает нужную версию — не нужен pyenv.

3.12

Ваша реакция на статью

💬 Комментарии (0)

🔐 Войдите в систему, чтобы оставить комментарий
🚪 Войти
💭

Комментариев пока нет

Станьте первым, кто поделится мнением об этой статье!

🔗 Похожие

Похожие статьи

Продолжите изучение с этими материалами

📝

Anthropic SDK: первые шаги с Claude API

Anthropic Python SDK — официальная библиотека для работы с Claude. Она скрывает сложность HTTP-запросов, добавляет...

📅 04.06.2026 👁️ 16
📝

Стриминг ответов LLM: ответ по частям

По умолчанию messages.create() ждёт пока модель полностью сформирует ответ и только потом возвращает результат. При...

📅 04.06.2026 👁️ 18
📝

System prompts: задаём роль языковой модели

System prompt — это невидимая инструкция для модели которую задаёт разработчик. Пользователь её не видит,...

📅 04.06.2026 👁️ 14

Понравилась статья?

Подпишитесь на наши обновления и получайте новые статьи первыми. Развивайтесь вместе с PyLand!