Python. Переход с pipx на uv

Python. Переход с pipx на uv

2026-03-21 · 3 мин. для прочтения
blog computer-science

Python. Переход с pipx на uv.

Содержание

1 Общая информация

  • pipx предназначен для установки и запуска Python-приложений в изолированных средах.
  • Трудно поддерживается.
  • Предлагается заменить на uv и его компонент uvx.
  • uv — менеджер пакетов и проектов Python, написанный на Rust.
  • Быстрее pip и pipx, умеет управлять версиями Python, виртуальными окружениями и проектами.
  • uvx — встроенная команда uv, которая работает как аналог pipx run (запускает инструмент во временном виртуальном окружении без долгосрочной установки).
  • uvx является синонимом uv tool run.
  • Репозиторий: https://github.com/astral-sh/uv
  • Документация:

2 Установка uv

  • С помощью официального установщика:

    curl -LsSf https://astral.sh/uv/install.sh | sh
    
  • Windows (PowerShell):

    powershell -c "irm https://astral.sh/uv/install.ps1 | iex"
    
  • Через pip:

    pip install uv
    
  • Менеджеры пакетов:

    brew install uv
    winget install astral-sh.uv
    choco install uv
    

3 Соответствие команд

Таблица 1: Основные команды pipx и их аналоги в uv
Действиеpipxuv / uvx
Установка инструментаpipx install PACKAGEuv tool install PACKAGE
Запуск инструмента без установкиpipx run PACKAGE [args...]uvx PACKAGE [args...] или uv tool run PACKAGE [args...]
Список установленных инструментовpipx listuv tool list
Обновление инструментаpipx upgrade PACKAGEuv tool upgrade PACKAGE
Обновление всех инструментовpipx upgrade-alluv tool upgrade --all
Удаление инструментаpipx uninstall PACKAGEuv tool uninstall PACKAGE
Установка с дополнительными зависимостямиpipx inject PACKAGE DEPuv tool install PACKAGE --with DEP
Просмотр информации об окруженииpipx list --jsonuv tool list --show-paths или uv tool list --json

3.1 Примеры

  • Установка black:
# pipx
pipx install black

# uv
uv tool install black
  • Запуск ruff без установки:
# pipx
pipx run ruff check .

# uv
uvx ruff check .
  • Обновление всех инструментов:
# pipx
pipx upgrade-all

# uv
uv tool upgrade --all
  • Удаление black:
# pipx
pipx uninstall black

# uv
uv tool uninstall black
  • Установка jupyter и notebook:
# pipx
pipx install jupyter
pipx inject jupyter notebook

# uv (одной командой)
uv tool install jupyter --with notebook

4 Перенос существующих инструментов из pipx в uv

  • uv и pipx используют разные места для хранения виртуальных окружений:

    • pipx хранит окружения в ~/.local/pipx/venvs (Linux/macOS) или %USERPROFILE%\.local\pipx\venvs (Windows).
    • uv хранит окружения в ~/.local/share/uv/tools (Linux/macOS) или %LOCALAPPDATA%\uv\tools (Windows).
  • Инструменты, установленные через pipx, не видны для uv, и наоборот.

4.1 Переустановка через uv

  • Просто переустановите все необходимые инструменты с помощью uv tool install.

4.2 Перенос с сохранением версий

  • Можно получить список установленных пакетов и их версий из pipx и затем установить их через uv:
# Получить список пакетов и версий (Linux/macOS)
pipx list --json | jq -r '.venvs[] | "\(.metadata.main_package.package)@\(.metadata.main_package.package_version)"'

# Затем установить каждый
uv tool install black==24.4.2

5 Дополнительные возможности uv

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

    uv python install 3.12
    uv python list
    
  • Создание и управление виртуальными окружениями:

    uv venv
    uv pip install requests
    
  • Работа с проектами (аналог poetry / pipenv):

    uv init my-project
    cd my-project
    uv add requests
    uv run python script.py
    
  • Глобальные инструменты с явным указанием версии Python:

    uv tool install black --python 3.10
    
  • Установка инструментов из git, локальных путей, URL:

    uv tool install --from git+https://github.com/psf/black black
    
  • Конфигурация через ~/.config/uv/uv.toml.

    • Можно задать пути к инструментам, настройки кэширования и т.д.
Дмитрий Сергеевич Кулябов
Authors
Профессор кафедры теории вероятностей и кибербезопасности
Работаю профессором на кафедре теории вероятностей и кибербезопасности Российского университета дружбы народов им. Патриса Лумумбы. Научные интересы относятся к области теоретической физики и математического моделирования.