TGViewer
айти канал айти канал @simple_it_channel · 692 subscribers
Post #49 7.66K
uv — очень быстрый pip на стероидах с большими абмициями

Пост будет особенно полезным, если раньше не сталкивались с pip-tools. В конце есть пример испольвания.

uv — это новый и полезный уже сейчас инструмент от компании Astral, которая раньше сделала Ruff. Долгосрочная цель авторов очень амбициозная -- сделать uv единым инструментом для работы с Python и заменить все отдельные инструменты: pip, pyenv, virtualenv, pip-tools, ruff, tox, pipx, и т.д. В итоге любой инженер, аналитик, исследователь или студент сможет легко и единообразно устанавливать Python окружения и разрабатывать Python проекты.

В своей первой итерации uv — это в ~2x-100x раз более быстрая замена трём инструментам:

(1) pip. То есть uv очень быстро устанавливает Python пакеты, что особенно актуально для сложных окружений и особенно когда они устанавливаются регулярно (например, в Continuous Integration). Но и в быту при установке условного Jupyter ускорение в 5-10 раз ощущается очень приятно.

(2) pip-tools. Напомню, что в проектах важно фиксировать не только прямые зависимости (скажем, Django==5.0.3), но и непрямые (те пакеты, которые Django приносит с собой). Это нужно, чтобы у всех пользователей и на всех машинах было идентичное окружение. pip-tools помогает решить ровно эту задачу: он автоматически генерирует и поддерживает в актуальном состоянии ваш requirements.txt файл с полным списком зависимостей. А uv делает то же самое, но гораздо быстрее.

(3) venv & virtualenv. На фоне предыдущих пунктов создание виртуальной среды это скорее мелочь, но даже эту мелочь uv делает ощутимо быстрее :)

Я использовал uv пару раз для простых личных сценариев. Софт свежий, и чтобы понять, подходит ли он вам, можно посмотреть текущие ограничения и баги. По моему опыту и инфополю думаю, что установка обычных пакетов на linux/macos машины уже нормально работает.

---------

После установки uv можно скопировать и запустить примеры ниже в таком же порядке (проверено на v0.1.24).

Создать и активировать среду:

mkdir hello-world && cd hello-world
uv venv


Не забыть активировать среду:

source .venv/bin/activate


Установить пакет:

uv pip install pandas


Составить полный список зависимостей requirements.txt по pyproject.toml:

echo '[project]
name = "hello-world"
dependencies = ["scikit-learn==1.4.1.post1", "Django==5.0.3"]
' > pyproject.toml

uv pip compile pyproject.toml -o requirements.txt


Привести окружение в соответствие с requirements.txt (важное отличие от uv pip install -r requirements.txt: sync не только установит все из requirements.txt, но и удалит то, чего там нет, например, ранее установленный pandas и его зависимости):

uv pip sync requirements.txt


@simple_it_channel #python
  • 🔥 18
  • ❤ 4
More from @simple_it_channel
  1. Sep 17, 2026Herdr — современная замена tmux TL;DR Если вы используете tmux или zellij, не важно с аген…
  2. Jun 4, 2026🐏 herdr — agent-aware tmux 🐏 Сейчас есть много новых терминалов и отдельных приложений-о…
  3. May 28, 2026🌐 sendme — инструмент для peer-to-peer обмена файлами 🌐 Иногда хочется поделиться файлам…
  4. May 20, 2026🧚 Pixi — современный менеджер пакетов и проектов из мира Conda 🧚 Сегодня расскажу про Pi…
  5. Apr 17, 2026Muon — сильная альтернатива AdamW для табличных DL моделей Небольшой техрепорт от нашей ta…
  6. Oct 15, 2025Оптимизатор Muon добавили в PyTorch Тут вышел PyTorch v2.9: https://github.com/pytorch/pyt…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →