Python, pip: Как посмотреть зависимости конкретной версии модуля перед установкой
Подскажите, пожалуйста, лучший способ посмотреть список зависимостей для конкретного модуля перед установкой. Допустим у меня есть проект на Python3.7 где есть определенный список модулей разных версий. Мне необходимо добавить модуль pdfplumber. Но мне необходимо установить такую версию, что бы существующие модули не конфликтовали и не повышались в версии. Как мне лучше всего просмотреть список зависимостей, перед установкой ? За ранее спасибо!
Отслеживать
задан 26 апр в 9:45
23 3 3 бронзовых знака
Чтобы увидеть зависимости какого либо модуля перед установкой, можно попробовать использовать pip show <имя модуля>(например, pip show pdfplumber ). А чтобы увидеть зависимости всех установленных модулей, можно ввести pip freezeимя>
26 апр в 9:49
поправляю себя, pip show работает только в случаях когда пакет уже установлен.
26 апр в 9:53
Вот в этом и вопрос. Эта команда не подходит. Есть ли способ проверить перед установкой ?
26 апр в 9:57
Можно попробовать использовать pip download для скачивания пакета напрямую и их зависимостей вместе без установки
26 апр в 9:57
1 ответ 1
Сортировка: Сброс на вариант по умолчанию
Вариант 1 — смотрим json через pypi.org
Делаем запрос по имени библиотеки и версии, в данном случае
https://pypi.org/pypi/pdfplumber/0.9.0/json
в Json находим параметр «requires_dist» :
"requires_dist": [ "pdfminer.six (==20221105)", "Pillow (>=9.1)", "Wand (>=0.6.10)" ]
Вариант 2 — для Windows
Хорошим методом будет являться скачивание модуля в виде архива и просмотр файла requirements.txt . Для этого можно воспользоваться командой в powershell :
pip download pdfplumber --no-deps --no-binary=:all:
После этого откройте скачанный архив и найдите там файл requirements.txt В моем случае внутри он выглядит так:
pdfminer.six==20221105 Pillow>=9.1 Wand>=0.6.10
UPD.0 Если убрать из команды —no-deps , то возможно скачивание сразу и зависимых библиотек, но это приведет к их установке.
UPD.1 Для скачивания архива для последующего нахождения зависимостей конкретной версии библиотеки, можно действовать так:
pip download pdfplumber== --no-deps --no-binary=:all:
Где — это версия вашей библиотеки, соответственно.
UPD.2 Для нахождения зависимостей зависимостей, откройте первый requirements.txt и повторите операцию по скачиванию файла архива библиотеки для каждой зависимости, затем откройте их собственные requirements.txt если таковые имеются.
Ещё раз про установку PIP на Python. Базовые команды
В этой статье в очередной раз коснёмся темы установки PIP на Python. Вы узнаете, что делать, если PIP не установлена, как поставить эту систему, а также как выполняется инсталляция на Windows, Mac, Linux и Raspberry Pi. Дополнительно будут рассмотрены вопросы обновления и работы.
Python, как и любой другой серьёзный язык программирования, поддерживает дополнительные (сторонние) фреймворки и библиотеки. Эти библиотеки устанавливаются разработчиками с простой целью: облегчить себе жизнь и каждый раз не изобретать колесо в новом проекте. Нужные пакеты находятся в PyPI, который можно назвать центральным репозиторием Python и каталогом Python-пакетов (Python Package Index).
Но скачивать и устанавливать эти пакеты вручную — занятие утомительное, а порой и времязатратное. Лучше всего использовать для этих целей специальный инструмент для Python, делающий процесс проще и быстрее. Как вы уже догадались, речь идёт про PIP. И если PIP не установлен, обязательно восполните этот пробел.
Что же такое PIP?
Сама аббревиатура PIP («пип») представляет собой рекурсивный акроним. По сути, это система управления пакетами. Она применяется в целях установки и управления программными пакетами, которые написаны на Python. Ещё систему называют предпочитаемым установщиком программ. А непосредственно pip — это команда, запускающая соответствующую утилиту для установки, переустановки и деинсталляции пакетов, которые находятся в вышеупомянутом PyPI.
Часто возникает вопрос, а не устанавливается ли PIP одновременно с Пайтоном? Да, если речь идёт о следующих версиях: — Python версии 2.7.9 и выше; — Python версии 3.4 и выше.
В вышеупомянутых случаях «пип» устанавливается по дефолту и вместе с Python. Но если же речь идёт о более старых версиях, PIP не установлена. Однако установить PIP совсем несложно. Но прежде чем это сделать, рекомендуется проверить свою версию Python, а также то, правильно ли он у вас инсталлирован.
Проверка версии Python
Для выполнения проверки Python следует открыть командную строку. Она вам понадобится и при последующих действиях. Следует привыкать работать с командной строкой, т. к. многие операции быстрее, удобнее и нагляднее выполнять именно через неё. Если же вы начинающий системный администратор, знание терминала — это пункт под номером 0 в списке необходимых скиллов.
Запускаем командную строку следующим образом: 1. На Windows. Используем комбинацию клавиш «Win+X». 2. На Mac. Нажимаем «Command+пробел». 3. На Линукс. Работает комбинация «Ctrl+Alt+T».
Когда терминал открыт, вводим следующую команду:
python –-versionЕсли у вас Linux и Python 3.x, вводим несколько другую команду:
python3 --versionВ итоге вы должны получить актуальную версию Питона, которая установлена на вашу операционную систему. Если же что-то не так, вы получите сообщение, что Пайтон не установлен (Python is not defined).
Устанавливаем PIP на Windows
Инструкции, представленные ниже, подойдут для ОС Windows 7/8.1/10. Общий порядок действий, если PIP не установлен, следующий: 1. Скачиваем официальный установочный скрипт с именем get-pip.py. Для начала нажимаем правую кнопку мыши, потом «Сохранить как…». В итоге скрипт сохранится по указанному вами пути (пусть это будет папка «Загрузки»). 2. Открываем терминал (командную строку), после чего переходим к каталогу, где вы поместили файл get-pip.py. 3. Выполняем команду python get-pip.py .
Всё, установка запустится (installs), и инсталляция модуля будет завершена в сжатые сроки. Способ простой и действенный.
Устанавливаем на Mac
В современных версиях Mac как Python, так и PIP уже установлены. Однако со временем они устаревают, что нехорошо, поэтому лучше следить за тем, чтобы на вашем компьютере были актуальные версии. Но если вы хотите работать с той версией Python, которая есть, и желаете инсталлировать последнюю версию системы, сделать это можно простой командой, запустив в терминале следующее:
sudo easy_install pipДля установки более новых версий языка программирования Python вам пригодится Homebrew. С его помощью Пайтон устанавливается тоже очень просто (предполагается, что утилита командной строки Homebrew уже установлена):
brew install pythonПо итогу получите последнюю версию Python, в которую, кстати говоря, система «пип» уже может входить. Но если же пакет будет недоступен, выполните перелинковку:
brew unlink python && brew link pythonУстанавливаем на Linux
Для дистрибутивов Linux желательно использовать системный менеджер пакетов и штатные репозитории. Команды могут различаться с учётом конкретного дистрибутива. Для примера возьмём популярный дистрибутив Ubuntu. Если у вас Python 3, в терминале выполняем:
sudo apt install python3-pipА потом проверяем, что получилось:
pip3 --versionЕсли же речь идёт о Пайтон 2, команды установки и проверки версии будут чуть другими:
sudo apt install python-pippip --versionКак установить PIP на Raspberry Pi
Если вы являетесь пользователем Raspberry, эта часть статьи для вас. Если же вы даже не в курсе, что такое Raspberry, можете смело пропустить данный абзац.
Уже начиная с Rapsbian Jessie, система устанавливается по дефолту, то есть вопросов о том, что PIP не установлена, не возникает. Это ещё и причина обновить ОС до Rapsbian Jessie а не использовать Rapsbian Wheezy/Jessie Lite. Однако никто не мешает установить систему и на старую версию.
Для Python 2 это выглядит следующим образом:
sudo apt-get install python-pipДля третьей версии изменения в команде крайне незначительны:
sudo apt-get install python3-pipВ процессе работы нужно будет применять pip и pip3 соответственно.
Обновляем PIP для Python
Для многих разработчиков очень важно иметь последнюю версию установщика программ. Это имеет особое значение, если мы говорим о сохранении приемлемого уровня безопасности, исправлении ошибок (багов) и т. д.
Обновить PIP не составляет труда: 1. Для Windows. Используем команду python -m pip install -U pip . 2. Для Mac, Линукс либо Raspberry Pi — pip install -U pip .
Устанавливаем Python-библиотеки посредством PIP
Когда установка (installing) завершена, «пип» установился и готов к работе. В результате мы можем приступать к установке пакетов с помощью PIP из PyPI. Делается это с помощью простейшего синтаксиса, содержащего минимум кода:
pip install имя_пакетаПо умолчанию с помощью вышеприведённого синтаксиса будет установлена новейшая версия нужного пакета. Но иногда требуется конкретная версия, то есть более старая:
pip install имя_пакаета==1.0.0Также вы можете найти конкретный пакет:
pip search "ваш_запрос_поиска"Или посмотреть детали уже установленного (installed):
pip show имя_пакетаЕщё пользователю доступен список всех пакетов, которые установлены:
pip listА также список пакетов PIP, которые устарели:
pip list –outdatedНо это не беда, ведь можно выполнить обновление:
pip install имя_пакета --upgradeОднако учтите, что при обновлении старая версия будет удалена. Ещё может возникнуть необходимость в полной переустановке пакета:
pip install имя_пакета --upgrade --force-reinstallСовсем несложно и удалить пакет:
pip uninstall имя_пакетаЭто основы, которые должен знать каждый. Если же вас интересует Python-разработка на более продвинутом уровне, добро пожаловать на курсы в OTUS!
Система управления пакетами pip#
Для установки пакетов Python будет использоваться pip. Это система управления пакетами, которая используется для установки пакетов из Python Package Index (PyPI). Скорее всего, если у вас уже установлен Python, то установлен и pip.
Проверка версии pip:
$ pip --version pip 19.1.1 from /home/vagrant/venv/pyneng-py3-7/lib/python3.7/site-packages/pip (python 3.7)Если команда выдала ошибку, значит, pip не установлен. Установка pip описана в документации
Установка модулей#
Для установки модулей используется команда pip install :
$ pip install tabulateУдаление пакета выполняется таким образом:
$ pip uninstall tabulateКроме того, иногда необходимо обновить пакет:
$ pip install --upgrade tabulatepip или pip3#
В зависимости от того, как установлен и настроен Python в системе, может потребоваться использовать pip3 вместо pip. Чтобы проверить, какой вариант используется, надо выполнить команду pip --version .
Вариант, когда pip соответствует Python 2.7:
$ pip --version pip 9.0.1 from /usr/local/lib/python2.7/dist-packages (python 2.7)Вариант, когда pip3 соответствует Python 3.7:
$ pip3 --version pip 19.1.1 from /home/vagrant/venv/pyneng-py3-7/lib/python3.7/site-packages/pip (python 3.7)Если в системе используется pip3, то каждый раз, когда в книге устанавливается модуль Python, нужно будет заменить pip на pip3.
Также можно использовать альтернативный вариант вызова pip:
$ python3.7 -m pip install tabulateТаким образом, всегда понятно для какой именно версии Python устанавливается пакет.
Менеджер пакетов PIP. Гайд по использованию
PIP — это менеджер пакетов. Он позволяет устанавливать и управлять пакетами на Python.
Представьте себе ситуацию: вы собираете проект и подключаете множество сторонних библиотек для реализации своей задачи. Если это делать вручную, процесс выглядит примерно так:
- вы заходите на сайт, выбираете нужную версию пакета;
- скачиваете ее, разархивируете, перекидываете в папку проекта;
- подключаете, прописываете пути, тестируете.
Вполне вероятно, что эта версия библиотеки вообще не подходит, и весь процесс повторяется заново. А если таких библиотек 10? Устанавливать их вручную?
Менеджер пакетов PIP — решает данную проблему. Весь процесс установки пакета сводится к выполнению консольной команды pip install package-name . Несложно представить, сколько времени это экономит.
Если вы работали с другими языками программирования, концепция pip может показаться вам знакомой. Pip похож на npm (в Javascript), composer (в PHP) или gem (в Ruby).
Pip является стандартным менеджером пакетов в Python
Pip или pip3?
В зависимости от того, какая версия Python установлена в системе, может потребоваться использовать pip3 вместо pip.
Если вы не знаете какая версия Python установлена на вашей системе, выполните следующие команды:
- python --version — для Python 2.x
- python3 --version — для Python 3.x
- python3.8 --version — для Python 3.8.x
Советуем использовать версию Python 3.6 и выше
Если команда "python" не найдена, установите Python по инструкции из предыдущей статьи.
Далее нужно убедиться, что сам PIP установлен и работает корректно. Узнать это поможет команда:
Команда отобразит в консоли версию pip, путь до pip и версию python, для которой в дальнейшем будут устанавливаться пакеты:
pip 19.2.3 from /usr/local/lib/python3.8/site-packages/pip (python 3.8)
☝️ Важный момент : в зависимости от того, какую версию Python вы будете использовать, команда может выглядеть как pip , pip3 или pip3.8
Альтернативный вариант вызова pip:
python3.7 -m pip install package-name
Флаг -m сообщает Python-у запустить pip как исполняемый модуль.
Если pip не установлен
Pip поставляется вместе с Python, и доступен после его установки. Если по какой-то причине pip не установлен на вашей системе, установить его будет не сложно.
Windows
- Скачайте файл get-pip.py и сохраните у себя на компьютере.
- Откройте командную строку и перейдите в папку, в которой сохранен get-pip.py .
- В командной строке выполните команду: python get-pip.py или python3 get-pip.py .
- PIP установлен !
Linux (Ubuntu и Debian)
Прежде, чем перейти к непосредственному описанию, хотим отметить, что все команды, описанные ниже, используются от имени root пользователя. Если же вы являетесь обычным пользователем на компьютере, то потребуется использовать команду sudo , чтобы получить привилегии root.
Для Питона 2-й версии, выполните команду:
apt-get install python-pip
Для Питона 3-ей версии:
apt-get install python3-pip
MacOS
- скачайте файл get-pip.py командой curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py ;
- запустите скачанный файл командой: python get-pip.py или python3 get-pip.py .
Должна появиться запись Successfully Installed. Процесс закончен, можно приступать к работе с PIP на MacOS!
Как обновить PIP
Иногда, при установке очередного пакета, можно видеть сообщение о том, что доступна новая версия pip.
WARNING: You are using pip version 19.2.3, however version 19.3.1 is available.
А в следующей за ней строке
You should consider upgrading via the 'python -m pip install --upgrade pip' command.
указана команда для обновления pip:
python -m pip install --upgrade pip
Команды PIP
Синтаксис pip выглядит следующим образом: pip + команда + доп. опции
Со всеми командами pip можно ознакомиться, выполнив pip help . Информацию по конкретной команде выведет pip help .
Рассмотрим команды pip:
- pip install package-name — устанавливает последнюю версию пакета;
- pip install package-name==4.8.2 — устанавливает пакет версии 4.8.2;
- pip install package-name --upgrade — обновляет версию пакета;
- pip download — скачивает пакеты;
- pip uninstall — удаляет пакеты;
- pip freeze — выводит список установленных пакетов в необходимом формате ( обычно используется для записи в requirements.txt );
- pip list — выводит список установленных пакетов;
- pip list --outdated — выводит список устаревших пакетов;
- pip show — показывает информацию об установленном пакете;
- pip check — проверяет установленные пакеты на совместимость зависимостей;
- pip search — по введенному названию, ищет пакеты, опубликованные в PyPI;
- pip wheel — собирает wheel-архив по вашим требованиям и зависимостям;
- pip hash — вычисляет хеши архивов пакетов;
- pip completion — вспомогательная команда используется для завершения основной команды;
- pip help — помощь по командам.
Пример работы с пакетами
PIP позволяет устанавливать, обновлять и удалять пакеты на компьютере. Ниже попробуем разобраться с работой менеджера pip на примере парсинга названий свежих статей на сайте habr.com.
- установим нужные пакеты;
- импортируем пакет в свой скрипт;
- разберемся, что такое requirements.txt ;
- обновим/удалим установленные пакеты.
Шаг #1 Установка.
Для начала, нам необходимо установить beautifulsoup4 — библиотеку для парсинга информации с веб-сайтов.
pip3 install beautifulsoup4
pip найдет последнюю версию пакета в официальном репозитории pypi.org . После скачает его со всеми необходимыми зависимостями и установит в вашу систему. Если вам нужно установить определенную версию пакета, укажите её вручную:
pip3 install beautifulsoup4==4.8.2
Данная команда способна даже перезаписать текущую версию на ту, что вы укажите.
Также для работы beautifulsoup нам понадобится пакет lxml :
pip install lxml
☝️ Важный момент : по умолчанию pip устанавливает пакеты глобально. Это может привести к конфликтам между версиями пакетов. На практике, чтобы изолировать пакеты текущего проекта, создают виртуальное окружение (virtualenv).
Шаг #2 Импортирование в скрипте.
Для того чтобы воспользоваться функционалом установленного пакета, подключим его в наш скрипт, и напишем простой парсер:
from urllib.request import urlopen from bs4 import BeautifulSoup # скачиваем html page = urlopen("https://habr.com/ru/top/") content = page.read() # сохраняем html в виде объекта BeautifulSoup soup = BeautifulSoup(content, "lxml") # Находим все теги "a" с классом "post__title_link" all_a_titles = soup.findAll("a", < "class" : "post__title_link" >) # Проходим по каждому найденному тегу и выводим на экран название статьи for a_title in all_a_titles: print(a_title.text)
Шаг #3 requirements.txt.
Если вы просматривали какие-либо проекты Python на Github или где-либо еще, вы, вероятно, заметили файл под названием requirements.txt . Этот файл используется для указания того, какие пакеты необходимы для запуска проекта (в нашем случае beautifulsoup4 и lxml).
Файл requirements.txt создается командой:
pip freeze > requirements.txt
и выглядит следующим образом:
beautifulsoup4==4.8.2 lxml==4.4.2 soupsieve==1.9.5
Теперь ваш скрипт вместе с файлом requirements.txt можно сохранить в системе контроля версий (например git).
Для работы парсера в новом месте (например на компьютере другого разработчика или на удаленном сервере) необходимо затянуть файлы из системы контроля версий и выполнить команду:
pip install -r requirements.txt
Шаг #4 Обновление/удаление установленных пакетов.
Команда pip list --outdated выведет список всех устаревших пакетов. Обновить отдельно выбранный пакет поможет команда:
pip install package-name --upgrade
Однако бывают ситуации, когда нужно обновить сразу все пакеты из requirements.txt. Достаточно выполнить команду:
pip install -r requirements.txt --upgrade
Для удаления пакета выполните:
pip uninstall package-name
Для удаления всех пакетов из requirements.txt:
pip uninstall -r requirements.txt -y
Мы разобрали основы по работе с PIP. Как правило, этого достаточно для работы с большей частью проектов.