- Предупреждение: все написанное здесь является личным мнением автора и не претендует на абсолютную истину.
Сегодня речь пойдет о новом, вышедшем только в феврале 2024 года "менеджере пакетов питона" с именем "UV". Вернее даже не "менеджере пакетов", а "менеджере питона".
Для начала небольшое отступление от темы:
- разработанная и написанная с нуля на "RUST" (язык программирования низкого уровня, поэтому очень быстрый) новая утилита (программа?) с именем "uv.exe" представляет собой один файл размером всего 43 мегабайта (ибо почти ассемблер!) который задумывался как замена менеджеру пакетов питона "PIP", выполняет все его функции, но кроме них умеет еще и устанавливать сам питон любой версии.
- фактически "UV" является "менеджером питона" + "менеджером виртуальных окружений" + "менеджером пакетов питона", ибо умеет скачивать и устанавливать сам питон любой версии, создавать виртуальные окружения, и выполнять обязанности менеджера пакетов полностью заменяя "pip".
- при этом он работает до 100 раз быстрее!!!
Я тестировал его на скорость работы, к примеру, для установки четырех версий питона: 3.10 + 3.11 + 3.12 + 3.13 вместе со скачиванием ему при первой установке хватило 1 минуты 43 секунд, а после удаления питонов и их повторной установке хватило 43 секунд (кеш).
Ну, теперь все по порядку.
Где взять UV
Страница проекта:
GitHub проекта:
Релизы проекта:
Ссылка на последний "64х Windows" (на дату написания статьи!):
https://github.com/astral-sh/uv/releases/download/0.5.7/uv-x86_64-pc-windows-msvc.zip
В результате мы получаем два EXE-файла:
- uv.exe
- uvx.exe
Первый из них — сам "менеджер питонов", второй - "extended", то же самое, но с расширенным перечнем команд (--help в помощь).
Обновление: уже 3 файла. Статья написана давно и UV развивается.
Оба файла кидаем в PATH и забываем об их местонахождении, ибо около себя они ничего не пишут, никаких файлов не создают. Нам достаточно того, чтобы они просто вызывались как "cmd" из любого места.
Вообще-то, в WIndows, стандартное месторасположение UV в папке:
Users\UserName\.local\.bin
Лучше вручную полдожить туда два этих файла, тогда вам будет доступна команда:
uv self update
... которая обновит версию UV, если у вас установдена не самая новая, а она ожидает увидеть лишь одну копию UV и именно в этой папке.
Лучше всего, под Windows, установить UV следующей командой:
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
... она сразу поставит UV на свое место.
Запуск и установка питона
Пример команд для установки питонов:
- uv python install - поставит последнюю версию питона
- uv python install 3.10 - поставит последний релиз этой версии питона
- uv python install 3.10 3.12 - поставит сразу две версии питона
- uv python install 3.10.6 - поставит указанный релиз питона
- ... там много что еще есть, пишу только самое необходимое.
Пример дистанционного получения и установки питона через "UV"
curl -LsSf https://astral.sh/uv/install.sh | sh
uv python install 3.12
Более подробно об установке питонов тут:
Запрос все имеющихся версий (для windows):
uv python list --all-versions
Запрос установленных версий:
uv python list --only-installed
Аналогично: для удаления вместо "install" пишем "uninstall"
Все версии питона по умолчанию ставятся в:
- uv venv --python 3.10 d:\4\venv310
Идеология работы
- Подразумевается, что если требуется выполнить что-то, для чего требуется питон, а питона нет, то питон будет автоматически скачан, установлен и приложение, требующее питона будет на нем запущено.
- Подразумевается, что в "Roaming" находятся "питоны-мамки" от которых создаются виртуальные окружения, и вся работа ведется на этих виртуальных окружениях.
Создаем каталог, делаем его текущим и даем команду:
- uv venv --python 3.10 - создаст venv в текущем каталоге от питона 3.10
- uv venv --python 3.12 d:\4\venv310 - создаст venv от указанной версии в указанном каталоге.
Дальше все, как обычно — работа с VENV.
UV как замена PIP
Все то же самое, только добавляется "uv"
- uv pip install torch
- uv pip install -r c:\ComfyUI\requirements.txt
Где хранить свой кэш
Пример последовательности команд для установки и запуска ComfyUI на этой технологии
md c:\Comfy
uv python install 3.12
uv venv --python 3.12 c:\Comfy\venv312
cd /d c:\Comfy
git clone https://github.com/comfyanonymous/ComfyUI.git
c:\Comfy\venv312\Scripts\activate
uv pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu124
uv pip install -r c:\Comfy\ComfyUI\requirements.txt
c:\Comfy\venv312\Scripts\python c:\Comfy\ComfyUI\main.py --auto-launch
pause
Тут переносится, а по строкам должно выглядеть вот так:
И все это в 100 раз быстрее!
Вот эта установка ComfyUI с нуля (но уже был установлен UV) прошла за 50 секунд, из которых 30 секунд заняло скачивание ComfyUI с GIT (правда все остальное было уже в кэше).
Примечание:
я удалил все свои питоны и полностью перешел на технологию UV
В самом скором времени все перейдут на эту технологию работы с питоном, ибо выигрыш в скорости работы до 100 раз и удобство работы с питоном тут несомненно!
И да: НА UV-PYTHON РАБОТАЕТ COMFYUI-ELECTRON (V1) !!!!!!!!!!!
Документация вся есть, читайте, учите.
Полный список команд UV
https://docs.astral.sh/uv/reference/cli/
Удачи!