Добавить в корзинуПозвонить
Найти в Дзене

Переходим на новый менеджер пакетов "UV" в "Python"

Сегодня речь пойдет о новом, вышедшем только в феврале 2024 года "менеджере пакетов питона" с именем "UV". Вернее даже не "менеджере пакетов", а "менеджере питона". Я тестировал его на скорость работы, к примеру, для установки четырех версий питона: 3.10 + 3.11 + 3.12 + 3.13 вместе со скачиванием ему при первой установке хватило 1 минуты 43 секунд, а после удаления питонов и их повторной установке хватило 43 секунд (кеш). Ну, теперь все по порядку. Страница проекта: GitHub проекта: Релизы проекта: Ссылка на последний "64х Windows" (на дату написания статьи!): https://github.com/astral-sh/uv/releases/download/0.5.7/uv-x86_64-pc-windows-msvc.zip В результате мы получаем два EXE-файла: Первый из них — сам "менеджер питонов", второй - "extended", то же самое, но с расширенным перечнем команд (--help в помощь). Обновление: уже 3 файла. Статья написана давно и UV развивается. Оба файла кидаем в PATH и забываем об их местонахождении, ибо около себя они ничего не пишут, никаких файлов не созд
Оглавление
  • Предупреждение: все написанное здесь является личным мнением автора и не претендует на абсолютную истину.

Сегодня речь пойдет о новом, вышедшем только в феврале 2024 года "менеджере пакетов питона" с именем "UV". Вернее даже не "менеджере пакетов", а "менеджере питона".

Для начала небольшое отступление от темы:

  • разработанная и написанная с нуля на "RUST" (язык программирования низкого уровня, поэтому очень быстрый) новая утилита (программа?) с именем "uv.exe" представляет собой один файл размером всего 43 мегабайта (ибо почти ассемблер!) который задумывался как замена менеджеру пакетов питона "PIP", выполняет все его функции, но кроме них умеет еще и устанавливать сам питон любой версии.
  • фактически "UV" является "менеджером питона" + "менеджером виртуальных окружений" + "менеджером пакетов питона", ибо умеет скачивать и устанавливать сам питон любой версии, создавать виртуальные окружения, и выполнять обязанности менеджера пакетов полностью заменяя "pip".
  • при этом он работает до 100 раз быстрее!!!

Я тестировал его на скорость работы, к примеру, для установки четырех версий питона: 3.10 + 3.11 + 3.12 + 3.13 вместе со скачиванием ему при первой установке хватило 1 минуты 43 секунд, а после удаления питонов и их повторной установке хватило 43 секунд (кеш).

Скорость установки питонов
Скорость установки питонов

Ну, теперь все по порядку.

Где взять UV

Страница проекта:

uv: Unified Python packaging

GitHub проекта:

GitHub - astral-sh/uv: An extremely fast Python package and project manager, written in Rust.

Релизы проекта:

Releases · astral-sh/uv

Ссылка на последний "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 python install pypy@3.10 - установка альтернативной версии питона
  • ... там много что еще есть, пишу только самое необходимое.

Пример дистанционного получения и установки питона через "UV"

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

Более подробно об установке питонов тут:

Python versions | uv

Запрос все имеющихся версий (для 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

Где хранить свой кэш

-3

Пример последовательности команд для установки и запуска 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

Тут переносится, а по строкам должно выглядеть вот так:

-4

И все это в 100 раз быстрее!

Вот эта установка ComfyUI с нуля (но уже был установлен UV) прошла за 50 секунд, из которых 30 секунд заняло скачивание ComfyUI с GIT (правда все остальное было уже в кэше).

-5
Примечание:
я удалил все свои питоны и полностью перешел на технологию UV

В самом скором времени все перейдут на эту технологию работы с питоном, ибо выигрыш в скорости работы до 100 раз и удобство работы с питоном тут несомненно!

И да: НА UV-PYTHON РАБОТАЕТ COMFYUI-ELECTRON (V1) !!!!!!!!!!!

Документация вся есть, читайте, учите.

Полный список команд UV

https://docs.astral.sh/uv/reference/cli/

Commands | uv

Удачи!

-6
-7
-8