Pip, система управления пакетами для Python, является незаменимым инструментом для каждого программиста на этом языке. Работаете ли вы над веб-разработкой, машинным обучением, Data Science или любым другим проектом на Python, pip позволит вам легко получить доступ к обширному репозиторию библиотек и фреймворков.

Используя pip, вы можете быстро устанавливать и обновлять пакеты и управлять зависимостями с минимальными усилиями. Это не только экономит время, но и гарантирует, что вы имеете дело с самыми последними и безопасными версиями библиотек. Кроме того, pip поддерживает создание и управление виртуальными средами, что помогает изолировать зависимости конкретного проекта и поддерживать чистую среду разработки.

Установка и обновление Pip

Pip обычно поставляется в комплекте с Python версии 3.4 и выше. Тем не менее, важно убедиться, что pip установлен и обновлен, чтобы использовать последние функции и обновления безопасности.

  • Проверка установки pip: откройте терминал или командную строку и выполните команду:

pip --version

Эта команда отобразит версию pip, установленную на вашей системе.

  • Установка pip: вы можете загрузить скрипт get-pip.py и запустить его с помощью Python:

curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python get-pip.py
  • Обновление pip: чтобы обновить pip до последней версии, выполните следующую команду:

pip install --upgrade pip

Убедившись, что pip установлен и обновлен, вы сможете избежать потенциальных проблем с совместимостью и получить более плавный опыт разработки.

Установка пакетов

Когда pip установлен и обновлен, вы можете начать установку пакетов Python из индекса пакетов Python (PyPI).

  • Базовая установка пакетов: чтобы установить пакет, выполните следующую команду:

pip install package_name

Например, чтобы установить популярную библиотеку requests, нужно выполнить команду:

pip install requests
  • Установка определенных версий: вы можете указать версию пакета, добавив ==, за которым следует номер версии:

pip install package_name==1.0.0
  • Установка нескольких пакетов из файла требований: вы можете создать файл требований и установить все пакеты, перечисленные в нем, за один раз.

  1. Создайте файл requirements.txt с именами и версиями пакетов.

  2. Установите пакеты с помощью следующей команды:

pip install -r requirements.txt

Этот метод особенно полезен для быстрой настройки окружений и обеспечения согласованности различных установок.

  • Установка пакетов из URL или локальной директории: pip также позволяет устанавливать пакеты из URL или из локальных каталогов. 

Из URL-адреса:

pip install https://example.com/package_name.tar.gz

Из локальной директории:

pip install /path/to/package_name
  • Установка предварительных версий: если вам нужна предварительная версия пакета, используйте флаг --pre:

pip install package_name --pre

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

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

Деинсталляция пакетов

В pip есть несколько команд, которые помогут вам удалить ненужные пакеты из среды Python.

  • Простая деинсталляция: чтобы удалить пакет, используйте следующую команду:

pip uninstall package_name

Например, чтобы удалить библиотеку requests, нужно выполнить команду:

pip uninstall requests
  • Удаление нескольких пакетов: вы можете удалить несколько пакетов, перечислив их один за другим:

pip uninstall package1 package2 package3

Эта команда попросит вас подтвердить удаление каждого пакета.

  • Принудительная деинсталляция: использование флага -y поможет принудительно удалить пакет, не запрашивая подтверждения:

pip uninstall package_name -y
  • Удаление всех пакетов: если вам нужно удалить все пакеты из вашей среды, вы можете воспользоваться следующей командой:

pip freeze | xargs pip uninstall -y

Эта команда выводит список всех установленных пакетов и передает их команде удаления.

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

Списки установленных пакетов

Pip предлагает несколько команд для составления списков и просмотра установленных пакетов.

  • Простой список: чтобы перечислить все установленные пакеты, используйте команду:

pip list

Эта команда выводит простой список всех установленных пакетов вместе с их версиями.

  • Подробный список с версиями: для получения более подробного списка, включающего номера версий каждого пакета в удобном формате:

pip list --format=columns

Это обеспечивает табличный формат, который легче читать и интерпретировать.

  • Использование Freeze для создания файла требований: команда freeze полезна для создания списка всех установленных пакетов с указанием их версий. Этот список можно сохранить в файле требований, что полезно для копирования среды в другие места:

pip freeze > requirements.txt

Эта команда создает файл requirements.txt, содержащий все установленные пакеты и их соответствующие версии. Этот файл можно использовать для воссоздания окружения, выполнив команду:

pip install -r requirements.txt
  • Список устаревших пакетов: чтобы узнать, какие пакеты имеют доступные обновления, используйте команду list --outdated:

pip list --outdated

Эта команда показывает, какие установленные пакеты устарели, и предоставляет последнюю доступную версию.

  • Список пакетов с конкретной информацией: вы можете получить информацию об установленных пакетах, используя команду show, за которой следует имя пакета:

pip show package_name

Эта команда предоставляет подробную информацию об указанном пакете, включая его зависимости, версию и место установки.

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

Поиск пакетов

Pip предоставляет команды для поиска пакетов, доступных в индексе пакетов Python (PyPI).

  • Основные команды поиска: чтобы найти пакет, используйте следующую команду:

pip search search_term

Например, для поиска пакетов, связанных с визуализацией данных, вы можете использовать:

pip search visualization

Эта команда возвращает список пакетов, соответствующих поисковому запросу, вместе с их описаниями.

  • Фильтрация результатов поиска: хотя функциональность поиска в pip является несколько базовой, вы можете использовать более конкретные условия поиска или комбинировать их с поиском на сайте PyPI для более глубокой фильтрации.

  • Поиск пакетов с определенными метаданными: вы можете использовать веб-интерфейс PyPI для поиска пакетов с определенными метаданными, такими как классификаторы, которые классифицируют пакеты на основе таких критериев, как статус разработки, целевая аудитория и поддерживаемые версии Python.

  • Использование сторонних инструментов: воспользуйтесь сторонними инструментами и веб-сайтами, которые интегрируются с PyPI. Инструменты вроде pip-tools или веб-интерфейсы вроде Libraries.io могут предоставить более продвинутые функции поиска.

Используя поисковые возможности pip и внешние инструменты, вы сможете эффективно найти и оценить пакеты, которые наилучшим образом отвечают потребностям вашего проекта.

Управление зависимостями

Управление зависимостями — важнейший аспект поддержания стабильной и функциональной среды Python. Pip предлагает несколько команд, которые помогут вам эффективно работать с зависимостями пакетов.

  • Проверка зависимостей пакетов: чтобы посмотреть зависимости конкретного пакета, вы можете использовать команду show:

pip show package_name

Эта команда предоставляет подробную информацию о пакете, включая его зависимости. Например:

pip show requests
  • Устранение конфликтов зависимостей: pip пытается разрешить эти конфликты автоматически, но если это не удается, вы можете вручную указать совместимые версии или использовать виртуальные среды для изоляции зависимостей.

  • Установка пакетов в виртуальной среде: виртуальные среды позволяют создавать изолированные среды Python для разных проектов, гарантируя, что зависимости не будут мешать друг другу.

Чтобы создать и активировать виртуальную среду, выполните следующие команды:

# Create a virtual environment
python -m venv env_name

# Activate the virtual environment (Windows)
env_name\Scripts\activate

# Activate the virtual environment (Linux/macOS)
source env_name/bin/activate

После активации вы можете устанавливать пакеты с помощью pip, и они будут находиться внутри виртуальной среды.

  • Обновление зависимостей: чтобы обновить пакет до последней версии, используйте флаг --upgrade:

pip install --upgrade package_name

Вы также можете обновить все пакеты, перечисленные в файле требований, выполнив команду:

pip install --upgrade -r requirements.txt
  • Замораживание зависимостей: после установки и управления зависимостями полезно заморозить их в файле требований. Это гарантирует, что точные версии пакетов задокументированы и могут быть воспроизведены:

pip freeze > requirements.txt

Эффективное управление зависимостями позволяет поддерживать стабильную и предсказуемую среду Python, что делает разработку более надежной.

Расширенные команды

Pip предлагает несколько дополнительных команд, которые обеспечивают больший контроль и предоставляют информацию об установленных пакетах и зависимостях.

  • Команда Show для получения подробной информации о пакете: show предоставляет подробную информацию о конкретном пакете, включая его зависимости, версию и место установки:

pip show package_name

Например:

pip show numpy

Эта команда выводит подробные метаданные о пакете numpy, помогая понять его зависимости и другую необходимую информацию.

  • Команда Check для проверки целостности пакета: check используется для проверки совместимости зависимостей установленных пакетов:

pip check

Эта команда проверяет наличие конфликтов зависимостей и сообщает о найденных проблемах, позволяя оперативно их решить.

  • Загрузка пакетов без установки: вы можете загружать пакеты без их установки с помощью команды download. Это может быть полезно для автономной установки или для проверки содержимого пакета перед установкой:

pip download package_name

Например, чтобы загрузить пакет requests:

pip download requests
  • Установка пакетов из локальных архивов: если вы загрузили пакеты в виде архивов (например, whl-файлов), вы можете установить их локально с помощью команды install:

pip install /path/to/package_name.whl
  • Установка из системы управления исходными текстами: pip позволяет устанавливать пакеты непосредственно из репозиториев контроля исходного кода, что полезно для тестирования последних версий кода или отдельных веток проекта:

pip install git+https://github.com/username/repo_name.git

Вы также можете указать ветки, теги или коммиты:

pip install git+https://github.com/username/repo_name.git@branch_name
  • Использование кэша Pip: pip поддерживает кэш загруженных пакетов для ускорения установки. Вы можете управлять этим кэшем с помощью команды cache.

Список записей кэша:

pip cache list

Удалить записи кэша:

pip cache purge

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


Pip — невероятно мощный и универсальный инструмент для управления пакетами Python, и освоение его различных команд может значительно улучшить ваш рабочий процесс разработки. От установки и обновления пакетов до управления зависимостями и настройки конфигураций, pip предоставляет все функции, необходимые для поддержания надежной и эффективной среды Python.

Переведено редакцией ProductStar специально для Хабра

ProductStar — онлайн-школа IT-профессий, часть холдинга РБК с 2023 года. Спасибо, что растете вместе с нами!

Вы можете подписаться на нас в Telegram, посмотреть на все наши статьи на Хабре и познакомиться с нашим расширенным курсом «Python-разработчик».

Комментарии (7)


  1. Andrey_Solomatin
    05.07.2024 10:25
    +1

    Стоит упомянуть про аргумент install
    -e,--editable


    Добавляет ссылку на папку из репозитория в установленные библиотеки. Если вы разработываете библиотеку и приложение, её использующее, это экономит время.

    Для библиотек вообще рекомендован src layout https://packaging.python.org/en/latest/discussions/src-layout-vs-flat-layout/#src-layout-vs-flat-layout, работа с котором онованна на этом аргументе.


  1. Andrey_Solomatin
    05.07.2024 10:25

    Я лично download, search никогда не использовал. show вроде был разок. Я бы их в основные не добавил.


  1. JastixXXX
    05.07.2024 10:25
    +2

    При попытке воспользоваться pip search, получаю в ответ, что оно больше не поддерживается. В статье устаревшая информация, или у меня руки кривые?


    1. red_dragon
      05.07.2024 10:25
      +3

      Устаревшая информация. Search давно не работает.


    1. sinner_a
      05.07.2024 10:25

      Так и есть (не про руки), у них проблемный API поиска пакетов. Не работает с 2020 г. https://habr.com/ru/news/533484/ здесь подробней.


    1. A1t0r
      05.07.2024 10:25

      pip search уже давно не работает


  1. flamix
    05.07.2024 10:25

    Я уже давно перешёл на poertry и pdm, и другим советую)