Поиск по сайту:

Почему вам следует устанавливать приложения Python с помощью pipx (и как начать)


Ключевые выводы

  • Установка приложений Python может оказаться сложной задачей из-за потенциальных конфликтов с системными пакетами, но pipx упрощает эту задачу, создавая виртуальные среды и управляя зависимостями.
  • Pipx — это удобная альтернатива pip, которая устанавливает приложения по всей системе, не требуя привилегий sudo, и помогает легко добавлять, обновлять или удалять приложения Python.
  • С помощью pipx вы можете устанавливать приложения Python CLI, запускать их так же, как стандартные команды Linux, и даже легко удалять их. Это удобный инструмент для управления и расширения вашей библиотеки приложений.

Существует множество полезных приложений Python CLI, но установка не всегда так проста, как кажется. Давайте посмотрим, как pipx может упростить их установку и управление.

Почему приложения Python сложны

Установка приложений Python может довольно быстро затрудниться. Python — универсальный язык, и зачастую его учат первыми. Просматривая GitHub или PyPI — индекс пакетов Python — вы можете найти множество полезных приложений наряду с библиотеками программирования. Поскольку он стал настолько повсеместным, многие люди вносят свой код, а также инструкции по его установке.

В большинстве инструкций по установке вам предлагается выполнить установку с помощью pip, менеджера пакетов для Python. Подобно apt и yum для Linux, он использует PyPI в качестве репозитория и позволяет устанавливать библиотеки для вашего кода, а также готовые приложения, написанные на Python. Однако установка программного обеспечения через экземпляр pip, находящийся в вашей системе, может вызвать конфликты с пакетами, которые уже принадлежат и управляются вашим обычным менеджером пакетов. Большинство дистрибутивов Linux в наши дни используют и зависят от Python и связанных с ним пакетов для запуска функций операционной системы, а другое основное программное обеспечение часто использует определенные версии определенных библиотек.

Я настоятельно не рекомендую устанавливать программное обеспечение на уровне системы с помощью sudo pip install, поскольку это может вызвать конфликты с менеджером пакетов вашей системы и привести к нарушению функциональности или, в худшем случае, к тому, что система не загружается. Я не одинок в этом, поскольку RealPython и документация virtualenv рекомендуют это, и даже официальная документация Python указывает на эту проблему.

Другой вариант — установить на уровне пользователя с помощью pip install --user, но не каждый пакет работает таким образом безупречно. Зависимости по-прежнему устанавливаются для этого пользователя в масштабах всей системы, что также может вызывать проблемы.

Сообщество Python рекомендует использовать так называемую виртуальную среду — часто называемую venvs — для создания изолированных папок, которые включают в себя все необходимые для работы части проекта, но их использование, когда вы не знакомы с процессом, может быть очень неприятно. особенно если вы пытаетесь писать сценарии. Это лишь некоторые из проблем, с которыми могут столкнуться пользователи при работе приложений Python в их системе.

пипкс спешит на помощь

Чтобы решить наши проблемы, мы можем использовать приложение под названием pipx. Это удобная альтернатива pip, ориентированная на конечных пользователей, а не на программистов. Он создает для вас виртуальные среды, устанавливает зависимости и делает программы доступными для всей системы — и все это без необходимости использования привилегий sudo в вашей системе. Он также управляет установленными приложениями Python, что позволяет легко добавлять, обновлять или удалять их по вашему усмотрению.

Поскольку pipx не предназначен для программистов, он не поддерживает некоторые важные функции, которые могут потребоваться при разработке, например установку редактируемых пакетов для тестирования. Это строго для пользователей!

Самый простой способ установить pipx — использовать менеджер пакетов вашей системы. Для начала давайте убедимся, что необходимые пакеты установлены. Если вы используете дистрибутив на основе Debian, например Ubuntu, вы можете использовать apt.

sudo apt update && sudo apt install python3-venv python3-pip

При этом будут установлены основные пакеты для виртуальных сред и менеджер пакетов pip. Во многих дистрибутивах Linux они предустановлены, но не во всех. Важно отметить, что версии Debian и Ubuntu не гарантируют, что эти пакеты будут предустановлены, поэтому, если вы используете эти дистрибутивы, вам следует выполнить приведенные выше команды. Если вы используете другой дистрибутив, используйте соответствующий менеджер пакетов, будь то yum, pacman или даже Brew.

Далее мы можем установить сам пакет pipx.

sudo apt install pipx

Наконец, мы хотим убедиться, что pipx подключен к нашему пути, чтобы установленные приложения запускались так же, как и все остальные. Нам просто нужно запустить команду pipx:

pipx ensurepath

Обратите внимание, что для этой команды нет sudo! Все будет работать в пользовательском пространстве, а это именно то, что нам нужно, чтобы не путаться с установкой Python в нашей операционной системе.

В некоторых дистрибутивах, таких как Ubuntu, вы можете получить сообщение о том, что вам, возможно, придется повторно войти в систему, чтобы изменение пути вступило в силу. В Rhino Linux все заработало сразу, но в Ubuntu мне пришлось выйти из системы и войти снова.

Вот и все, pipx готов к работе! Давайте посмотрим, как использовать его с некоторыми приложениями Python.

Установка приложений Python CLI

Давайте установим забавное приложение под названием Cowsay, используя pipx.

pipx install cowsay

Вы можете использовать приложение Python так же, как если бы это была стандартная команда или приложение Linux, которое мы установили. Под капотом он работает в собственной виртуальной среде, и любые зависимости отделены от нашей основной операционной системы.

Если вам нужно запустить приложение только один раз и вы не хотите беспокоиться об установке и удалении, у pipx есть режим запуска, который также сделает это за вас.

pipx run speedtest-cli

Вы также можете предоставить аргументы для приложения, чтобы можно было запускать определенные команды. Есть некоторые предостережения относительно форматирования, поэтому обязательно ознакомьтесь с официальной документацией pipx.

Вы можете использовать pipx, чтобы увидеть, какие установленные приложения Python вы установили.

pipx list

Вы можете видеть, что speedtest-cli не установлен, но cowsay все еще присутствует в нашей системе.

Вы также можете легко удалить приложение Cowsay.

pipx uninstall cowsay

Где действительно помогает pipx, так это в управлении более сложными приложениями. Например, вы можете легко написать простые сценарии Bash для запуска и поддержки приложения Calibre-Web для размещения вашей собственной библиотеки электронных книг, поскольку вы можете рассматривать его как просто еще одну команду. Без pipx написать служебные файлы было бы намного сложнее для тех, кто не знает Python и методов его развертывания.

Расширьте свою библиотеку приложений с помощью pipx

Теперь, когда у вас установлен pipx, вам доступно множество новых программ! Если вы найдете проекты на GitHub или PyPI, которые хотите использовать, pipx может упростить их установку и использование всего за минуту или две.

Статьи по данной тематике: