Как управлять пакетами Python с использованием Pip

Thank you for reading this post, don't forget to subscribe!

PIP, мене­джер паке­тов python, исполь­зу­ет­ся для уста­нов­ки, обнов­ле­ния, уда­ле­ния паке­тов, напи­сан­ных на язы­ке про­грам­ми­ро­ва­ния Python. В этом руко­вод­стве мы будем обсуж­дать, как уста­но­вить pip и управ­лять паке­та­ми python, таких как уста­нов­ка, обнов­ле­ние и уда­ле­ние паке­тов с помо­щью pip. Кро­ме того, мы уви­дим, что это такое вир­ту­аль­ная сре­да, как создать ее, и как изо­ли­ро­вать паке­ты в вир­ту­аль­ной сре­де с помо­щью инстру­мен­тов venv и/или virtualenv. Давай­те перей­дем к делу.

На CentOS/RHEL:

pip и wheel не доступ­ны в репо­зи­то­ри­ях по умол­ча­нию CentOS и RHEL. Что­бы уста­но­вить pip на CentOS, RHEL, Scientific Linux и дру­гие систе­мы на осно­ве RPMвклю­чи­те репо­зи­то­рий Epel с помо­щью команды:

 

А затем запу­сти­те сле­ду­ю­щую коман­ду, что­бы уста­но­вить pip:

 

Посколь­ку пакет setup-tools досту­пен в репо­зи­то­рии по умол­ча­нию, вы може­те уста­но­вить его с помо­щью команды:

Установка pip из бинарных файлов

Если вы хоти­те уста­но­вить pip из бинар­ных фай­лов, про­сто запустите:

 

Обра­ти­те вни­ма­ние, что get-pip.py так­же уста­но­вит Setuptools и well. Как мы уже упо­ми­на­ли ранее, неко­то­рые дис­три­бу­ти­вы Linux не име­ют well в основ­ных репо­зи­то­ри­ях. В таких слу­ча­ях, воз­мож­но, потре­бу­ет­ся доба­вить несколь­ко репо­зи­то­ри­ев тре­тьих сто­рон, напри­мер, Epel.

pip уже уста­нов­лен, если вы исполь­зу­е­те Python 2> = 2.7.9 или Python 3> = 3.4 дво­ич­ные фай­лы, загру­жен­ные из python.org. Тем не менее, вам нуж­но будет обно­вить pip с помо­щью команды:

 

или,

 

Для того, что­бы обно­вить все (pip, setuptools, whell), выпол­ни­те сле­ду­ю­щую команду:

 

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

 

или,

 

При­мер выво­да будет такой:

Создание виртуальных сред

Перед уста­нов­кой любых паке­тов pyton, реко­мен­ду­ет­ся создать вир­ту­аль­ную сре­ду. Вы може­те спро­сить, поче­му нам нуж­но создать вир­ту­аль­ную сре­ду? Пото­му что, «вир­ту­аль­ная сре­да» поз­во­ля­ет уста­но­вить пакет Python в изо­ли­ро­ван­ном месте, а не уста­нав­ли­вать его по все­му миру.

Допу­стим, вы хоти­те уста­но­вить пакет Python, напри­мер, YouTube, для, что нуж­но вер­сия 1 LibFoo, но дру­гое при­ло­же­ние тре­бу­ет вер­сии 2. Как вы може­те исполь­зо­вать оба эти при­ло­же­ния? Если вы уста­нав­ли­ва­е­те все в /usr/lib/python2.7/site-packages или /usr/lib/python3.6/site-packages (или что – то стан­дарт­ное поло­же­ние вашей плат­фор­мы есть), лег­ко ока­зать­ся в ситу­а­ции, когда у вас непред­на­ме­рен­но обно­вить­ся при­ло­же­ние, кото­рое не долж­но быть модер­ни­зи­ро­ва­но. Что­бы избе­жать это­го, мы выде­ля­ем паке­ты в вир­ту­аль­ной сре­де. Все вир­ту­аль­ные сре­ды име­ют свои соб­ствен­ные ката­ло­ги уста­нов­ки и не вза­и­мо­дей­ству­ют или кон­флик­ту­ют друг с другом.

Мы можем создать изо­ли­ро­ван­ные сре­ды pyton с помо­щью двух инструментов.

  1. venv
  2. virtualenv

Если вы исполь­зу­е­те Python 3.3 и более позд­нюю, venv уста­нав­ли­ва­ет­ся по умол­ча­нию. Для Python 2.x, вам необ­хо­ди­мо уста­но­вить virtualenv. Что­бы сде­лать это, выпол­ни­те команду:

 

Давай­те, сей­час созда­дим вир­ту­аль­ную среду.

Исполь­зо­ва­ние virtualenv:


 

Исполь­зо­ва­ние venv:


 

После того, как вы запу­сти­те выше коман­ду, вы буде­те поме­ще­ны в вир­ту­аль­ной среде.

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

Управление пакетами Python с использованием pip

Теперь мы видим наи­бо­лее рас­про­стра­нен­ные осно­вы исполь­зо­ва­ния PIP с примерами.

Для того, что­бы про­смот­реть спи­сок всех команд, отдель­ные и общие пара­мет­ры, выпол­ни­те сле­ду­ю­щую команду:

 

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

 

Наи­бо­лее рас­про­стра­нен­ным исполь­зо­ва­ни­ем pip явля­ет­ся уста­нов­ка из PyPi (Python Package Index), PyPi пред­став­ля­ет собой хра­ни­ли­ще, содер­жа­щее все паке­ты, создан­ные сооб­ще­ством раз­ра­бот­чи­ков в Python.

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

Созда­ние вир­ту­аль­ной среды:

Исполь­зо­ва­ние virtualenv:

 

Заме­нить MYENV на ваше соб­ствен­ное имя.

Исполь­зо­ва­ние venv:

 

Нако­нец, вклю­чи­те его с помо­щью команды:

 

После того, как вы запу­сти­те выше коман­ду, вы буде­те поме­ще­ны в вир­ту­аль­ную среду.

Теперь наста­ло вре­мя, уста­но­вить неко­то­рые паке­ты. Что­бы уста­но­вить пакет, напри­мер YouTube-DL, выпол­ни­те команду:

Эта коман­да уста­но­вит YouTube-DL со все­ми его зависимостями.

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

 

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

 

Обра­ти­те вни­ма­ние на символ “!”.

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

 

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

 

Что­бы уста­но­вить вер­сию, «сов­ме­сти­мую» с опре­де­лен­ной версией:

Скачать пакеты

Для того, что­бы загру­зить пакет со все­ми зави­си­мо­стя­ми (без уста­нов­ки), выполните:

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

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

 

или,

Эти коман­ды будут отоб­ра­жать все уста­нов­лен­ные паке­ты, исполь­зуя pip в вашей системе.

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

Для поис­ка кон­крет­но­го паке­та, напри­мер YouTube-DL, выпол­ни­те команду:

 

Эта коман­да будет искать и отоб­ра­жать резуль­тат, кото­рый соот­вет­ству­ет стро­ке «YouTube-DL».

Обновление пакетов

Для того, что­бы обно­вить уста­рев­ший пакет, выпол­ни­те команду:

 

Что­бы полу­чить спи­сок всех уста­рев­ших паке­тов в про­стом таб­лич­ном фор­ма­те, выпол­ни­те сле­ду­ю­щую команду:

 

При­мер вывода:

 

Теперь мы обнов­ля­ем уста­рев­шие паке­ты в боль­шин­стве послед­них доступ­ных вер­сий с помо­щью команды:

Экспорт всех установленных пакетов в файле

Ино­гда, вы може­те экс­пор­ти­ро­вать все уста­нов­лен­ные паке­ты в файл, что­бы про­ве­рить их в раз­лич­ных усло­ви­ях. Для это­го выпол­ни­те сле­ду­ю­щую команду:

 

Теперь, отклю­чить теку­щую вир­ту­аль­ную среду:

 

и создай­те новую с помо­щью команд:

 

Заме­ни­те MYENV1 на ваше соб­ствен­ное имя.

Исполь­зо­ва­ние venv:

 

Акти­ви­руй­те вновь создан­ную среду:

 

Теперь уста­но­ви­те все паке­ты, кото­рые мы экс­пор­ти­ро­ва­ли ранее.

 

Для того, что­бы уста­но­вить все сра­зу без вме­ша­тель­ства поль­зо­ва­те­ля, выпол­ни­те сле­ду­ю­щую команду:

 

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

Просмотр информации о пакете

Для того, что­бы про­смот­реть подроб­ную инфор­ма­цию о паке­те, выпол­ни­те команду:

Посмотреть зависимости пакетов

Мы можем визу­а­ли­зи­ро­вать зави­си­мо­сти всех уста­нов­лен­ных паке­тов с помо­щью инстру­мен­та «pipdeptree».

Уста­но­ви­те его с помо­щью команды:

 

После уста­нов­ки, вы може­те про­смат­ри­вать дере­во зави­си­мо­стей с помо­щью команды:

 

Удаления пакетов

Что­бы деинсталировать/удалить уста­нов­лен­ный пакет, выпол­ни­те команду:

 

Что­бы уда­лить несколь­ко паке­тов, ука­жи­те их, разделяя:

 

Для того, что­бы уда­лить все паке­ты pyton, уста­нов­лен­ный с помо­щью pip, выпол­ни­те команду:

 

Ино­гда pip не поз­во­ля­ет уда­лять паке­ты, при­над­ле­жа­щие ОС. В таких слу­ча­ях, вы може­те уда­лить все паке­ты, кото­рые не явля­ют­ся соб­ствен­но­стью ОС с помо­щью команды:

 

Как я уже гово­рил в преды­ду­щем раз­де­ле, мы можем сбро­сить все уста­нов­лен­ные паке­ты в файл и уда­лить их из спис­ка с помо­щью команды:

 

На этом эта­пе вы може­те полу­чить неко­то­рое пред­став­ле­ние о pip и его исполь­зо­ва­нии. Для полу­че­ния более подроб­ной инфор­ма­ции, обра­ти­тесь к офи­ци­аль­ной доку­мен­та­ции (https://pip.pypa.io/en/stable/user_guide/) и раз­дел помо­щи pip, выпол­нив сле­ду­ю­щую команду:

 

или про­сто,