Как проверить наличие библиотеки в python linux

Обновлено: 03.07.2024

P IP — это менеджер пакетов. Он позволяет устанавливать и управлять пакетами на 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:

  1. Скачайте файл get-pip.py и сохраните у себя на компьютере.
  2. Откройте командную строку и перейдите в папку, в которой сохранен get-pip.py .
  3. В командной строке выполните команду: python get-pip.py или python3 get-pip.py .
  4. PIP установлен 🎉!

Linux (Ubuntu и Debian)

Прежде, чем перейти к непосредственному описанию, хотим отметить, что все команды, описанные ниже, используются от имени root пользователя. Если же вы являетесь обычным пользователем на компьютере, то потребуется использовать команду sudo , чтобы получить привилегии root.

Для Питона 2-й версии, выполните команду:

apt-get install python-pip

Для Питона 3-ей версии:

apt-get install python3-pip

MacOS

Должна появиться запись Successfully Installed. Процесс закончен, можно приступать к работе с PIP на MacOS!

Как обновить PIP

WARNING: You are using pip version 19.2.3, however version 19.3.1 is available.

А в следующей за ней строке

указана команда для обновления pip:

python -m pip install --upgrade pip

Команды PIP

Синтаксис pip выглядит следующим образом: pip + команда + доп. опции

pip <command> [options]

Со всеми командами pip можно ознакомиться, выполнив pip help . Информацию по конкретной команде выведет pip help <command> .

Рассмотрим команды 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 — помощь по командам.

Пример работы с пакетами

  • установим нужные пакеты;
  • импортируем пакет в свой скрипте;
  • разберемся, что такое requirements.txt ;
  • обновим/удалим установленные пакеты.

Для начала, нам необходимо установить beautifulsoup4 — библиотеку для парсинга информации с веб-сайтов.

pip3 install beautifulsoup4

pip3 install beautifulsoup4==4.8.2

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

Также для работы beautifulsoup нам понадобится пакет lxml :

pip install lxml

☝️ Важный момент : по умолчанию pip устанавливает пакеты глобально. Это может привести к конфликтам между версиями пакетов. На практике, чтобы изолировать пакеты текущего проекта, создают виртуальное окружение (virtualenv).

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

Если вы просматривали какие-либо проекты 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

Команда 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. Как правило, этого достаточно для работы с большей частью проектов.

Есть ли способ в Python перечислить все установленные пакеты и их версии?

Я знаю, что могу зайти внутрь python/Lib/site-packages и посмотреть, какие файлы и каталоги существуют, но я нахожу это очень неловким. Что я ищу что-то похожее на npm list т.е. npm-ls .

Если у вас установлена ​​программа pip, и вы хотите увидеть, какие пакеты были установлены с помощью инструментов установки, вы можете просто вызвать это:

Он также будет включать номера версий для установленных пакетов.

Обновление

pip был обновлен и теперь производит тот же вывод, что и pip freeze , вызывая:

Примечание

Выходные данные из pip list отформатированы по-разному, поэтому, если у вас есть какой-то сценарий оболочки, который анализирует выходные данные (возможно, для получения номера версии ) из freeze и хотите изменить скрипт для вызова list , вам нужно изменить код разбора.

help('modules') должен сделать это за вас.

Если вы хотите получить информацию об установленных дистрибутивах Python и не хотите использовать для этого консоль или терминал cmd, а использовать код Python, вы можете использовать следующий код (протестирован с Python 3.4):

Функциональный вызов pip.get_installed_distributions(local_only=True) возвращает итерацию, а из-за цикла for и функции print элементы, содержащиеся в итерируемом распечатывается разделенными символами новой строки ( \n ). Результат (в зависимости от установленных дистрибутивов) будет выглядеть примерно так:

Вы можете попробовать: желток

Для установки желток попробуйте:

Yolk - инструмент Python для получения информации об установленном Python пакеты и пакеты запросов доступны на PyPI (пакет Python Index).

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

с установленными пакетами pip вы можете сделать

и в нем будут перечислены все установленные пакеты. Возможно, вам также следует использовать virtualenv и virtualenvwrapper . Когда вы начинаете новый проект, вы можете сделать

а затем (внутри этого virtualenv) делайте

Таким образом, вы можете workon my_new_project , а затем pip freeze чтобы увидеть, какие пакеты установлены для этого virtualenv /проекта.

или если у вас есть пакет python с файлом require.pip,

сделает свое дело

Для запуска этого в более поздних версиях pip (проверено на pip==10.0.1 ) используйте следующее:

Вот способ сделать это, используя PYTHONPATH вместо абсолютного пути к каталогу ваших библиотек Python:

Я недавно начал изучать Python, и у меня есть 2 вопроса, касающихся модулей.

  1. Есть ли способ получить список модулей Python, доступных (т.е. установленных) на компьютере?
  2. Я использую Ubuntu Karmic и Synaptic для управления пакетами. Я только что установил модуль python. Где на самом деле хранится код модуля на моей машине? (есть ли [рекомендуемое] место по умолчанию для хранения модулей)?

1) Есть ли способ получить список доступных модулей Python (т.е. установленных) на mchine?

Это работает для меня:

2) Где на самом деле хранится код модуля на моей машине?

Обычно в /lib/site-packages в вашей папке Python. (По крайней мере, на Windows.)

Вы можете использовать sys.path , чтобы узнать, в каких каталогах ищутся модули.

  1. Вы можете перебирать каталоги, перечисленные в sys.path , чтобы найти все модули (кроме встроенных).
  2. Вероятно, это будет где-то около /usr/lib/pythonX.X/site-packages (опять же, смотрите sys.path ). И подумайте об использовании собственного управления пакетами Python (через pip или easy_install , плюс yolk ) вместо этого пакеты в репозиториях, поддерживаемых дистрибутивами Linux, как правило, устарели.

Если вы используете conda или pip для установки модулей, вы можете использовать

Отобразить все модули. Это отобразит все модули в самом терминале и будет намного быстрее, чем

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

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

Введите любое имя модуля, чтобы получить дополнительную помощь. Или введите «модули спам» для поиска модулей, чье имя или сводка содержат строку «спам».

Чтобы найти местоположение модуля:

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

Копировать ссылку. Чтобы увидеть код после выхода из Python REPL:

В командной строке python сначала импортируйте тот модуль, для которого вам нужно местоположение.

Например, чтобы узнать местоположение "pygal":

На машине Windows модули Python расположены по адресу (системный диск и версия Python могут отличаться):

1) Использование функции справки

Войдите в приглашение Python и введите следующую команду:

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

2) Использование заморозки в пипсах

Даже если вам нужно установить дополнительные пакеты, чтобы использовать это, этот метод позволяет вам легко искать или фильтровать результат с помощью команды grep . например < < Х1 >> .

Существует около трех часто используемых инструментов для установки сторонних библиотек Python:

Общий формат установочного пакета:

1. whl (рекомендуется, бинарный)
2、tar.gz
3、zip
4. Яйцо (первый распространенный формат упаковки)
напрямую изменить суффикс файлов whl и egg на zip, который можно распаковать как zip

setup.py

Setup.py часто используется для установки исходного кода. Поскольку официальный веб-сайт pypi загружает пакет очень медленно, некоторые люди предпочтут загрузить и установить его, а некоторые люди загрузят исходный код на GitHub для установки. Setup.py часто используется с последним.

Как правило, исходный код на GitHub - это в основном сжатые файлы, такие как zip, tar.gz, tar.zip, tar.bz2, и они часто поставляются со своими собственными файлами setup.py.

установка:

1. Загрузите zip и разархивируйте;
2. Откройте cmd и введите путь после распаковки;
3. Выполните последовательно следующие коды.

Команда выглядит следующим образом:

Путь, по которому хранится установочный пакет Windows: \ Lib \ site-packages в пути установки python.

Путь для Linux должен быть: /usr/lib/python2.7/site-packages. (Путь не обязательно, в зависимости от ситуации, некоторые могут находиться в / usr / local / lib)

Недостатки:

Но этот метод установки имеет очень большую проблему, то есть пакет, установленный с помощью этого метода, не может быть полностью удален с помощью pip uninstall.

Вам нужно вручную удалить его в каталоге /usr/bin/python2.7/site-package (где python - соответствующая версия Python). Для UNIX-подобных систем больше проблем для 64-битных машин состоит в том, что они разделены на lib и lib64 в каталоге / usr, и оба они будут в этих двух каталогах.

В Интернете есть способ удаления, но я пробовал его не очень эффективно:

Удалить

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

easy_install

Фактически, установка сторонних модулей в Python выполняется с помощью инструмента setuptools. Easy_install и pip - это два инструмента управления пакетами, которые инкапсулируют инструменты установки.

Если мы хотим использовать easy_install, нам сначала понадобятся инструменты настройки. Конечно, текущая версия идет вместе с ним. Python 3.6 и более поздние версии немного отличаются, что будет обсуждаться позже.

Но все же могу упомянуть:

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

2. После загрузки разархивируйте, вы найдете внутри easy_install.py и setup.py, которые можно использовать напрямую.
Если это exe-файл, дважды щелкните файл ez_setup.py, чтобы установить его после установки, или выполните команду в cmd:

После установки easy_install его можно использовать для установки пакета, но рекомендуется добавить путь easy_install в переменную среды PATH, в противном случае вам нужно будет вводить путь каждый раз при установке пакета.

Путь easy_install в Windows: Каталог скриптов в Python 。
Путь к Linux должен быть: /usr/local/bin . (Путь не обязательно, это зависит от ситуации)

Как использовать easy_install, например, установить pip, просто добавьте имя пакета напрямую:

Удалить

Обновить

использовать

Установить tar.gz и zip с помощью pip проще всего, распаковывать не нужно, первые два тоже нужно распаковать.

Пакетная установка

Иногда вы обнаружите, что если вы хотите установить файл wheel при отсутствии сети, в прямом пипе будет ошибка. Есть способ, и он может быть пакетным, который заключается в использовании файла requirements.txt. Однако перед этим нам все еще нужно знать, что причина, по которой мы не можем установить файл wheel, заключается в том, что собственный питон не поддерживает загруженный файл whl.

1. Мы загрузим все пакеты, включая whl, tar.gz и т. Д.
2. Затем запишите версию пакета в файл requirements.txt и сложите их.
3. Вы можете выполнить команду напрямую или записать команду в сценарий.

Команда выглядит следующим образом:

Массовое удаление

Среди них -y означает, что не спрашивается, следует ли удалять во время удаления, что означает «да», который можно опустить, но он все равно добавляется в скрипт.

wheel

1. Формат наименования пакета колес

Первые два представляют имя и версию пакета соответственно.Трёхэлементные кортежи, выводимые из ранее просмотренной версии колеса, представляют - - .

  • python-tag - реализация Python, в основном разделенная на пять типов:

py-no расширение для конкретной реализации
cp-CPython, который является широко используемой реализацией Python.
ip-IronPython, реализация Python, работающая на платформе Windows CLI.
pp-PyPy, реализация Python с JIT
jy-Jython, реализация Python, работающая на JVM

Например, py2 и py3 в белом имени запроса представляют поддержку py2.x и py3.x соответственно. Если две существуют одновременно, это означает, что поддерживаются обе версии, разделенные знаком «.».

Честно говоря, я не совсем понимаю, что это такое, знаю только, что он делится на следующие категории:

with-pydebug (flag: d) - похоже, что он используется для отладки
with-pymalloc (flag: m) - специальный распределитель объектов
with-wide-unicode (flag: u) - включен по умолчанию
нет - нет различия

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

Большая часть того, что мы загружаем, похоже на окончание mu, например cp27mu.

win32-Windows32 бит
win_amd64 —— 64-разрядная версия Windows.
linux_i386-Linux 32 бит
linux_x86_64 —— Linux64 бит
любой —— любой

grpcio

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

Как видите, на снимке экрана задействовано около восьми различных систем и версий. В соответствии с командой для проверки версии whl я обнаружил, что она поддерживает версию manylinux1_x86_84, потому что в то время я использовал centos7 , А установка это самая маленькая (Mini) форма, поэтому я скачал одну из многих linux1_x86_84.

2. Какие типы файлов wheel поддерживает среда Python?

Просмотреть версии ниже pip10:

Просмотреть версии выше pip10:

python whl

Вы можете увидеть картинку:

Как видите, это список кортежей из нескольких групп. Вам знакомы три элемента в нем? Давайте посмотрим на имя файла колеса, например запросы:

Конечно, последнее невозможно увидеть при выполнении на Python в Windows.

Источник загрузки внутреннего официального сайта pypi иногда медленный, мы можем указать источник

Домашние зеркала на данный момент имеют:

Адрес загрузки сторонней библиотеки

Различия в методах установки pip до и после python3.6

Существует большая разница между Python 3.6 и предыдущими версиями (включая 2.x и 3.x до 3.6). После установки каталог Scripts пуст, и возникает ошибка, когда мы хотим выполнить пакет обновления:

conda

Когда я познакомился с python через 16 лет, изучение поисковых роботов было почти прекращено из-за установки сторонних библиотек, особенно фреймворка Scrapy.Позже я обнаружил такую ​​хорошую вещь с Anaconda через некоторое время.

Anaconda - это интегрированная среда. Существует большое количество часто используемых сторонних библиотек и пакетов, связанных с научными вычислениями. Любой пакет легко установить. Я никогда не беспокоился о пакете. Внутри находится команда conda, которая похожа на pip, но не только pip и роль виртуальной среды. Команда аналогична, просто замените pip на conda.

Если вы хотите установить Anaconda для py2 и py3 вместе, просто установите один из них в другой уже установленный путь envs.

virtualenv

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

Smartiqa Article

Работа с этим хранилищем расширений осуществляется через команду pip . Имеется и другой установщик easy_install , но он применяется существенно реже. Таким образом, пакетный менеджер pip необходим для установки, обновления, удаления и управления модулями языка Python.

2. Подготовительные мероприятия

Чтобы пользоваться возможностями пакетного менеджера pip, его необходимо установить. Если версия вашего Python выше 3.4 или 2.7.9 , то pip уже интегрирован в него. Использование более ранних версий языка не рекомендуется (вы теряете часть функционала). Другой способ установить pip (если вы его удалили случайно):
Проверить, что в вашем проекте или на ПК доступен pip , можно применяя следующую команду --version или -V :

Как видно из ответа, на данном ПК используется python версии 3.8 и pip версии 20.2.3 .

В некоторых случаях (актуально для пользователей Linux или macOS ) требуется применять команду pip3 (если в результате выполнения pip определяет, что у вас установлен python версии 2 по умолчанию). Это связано с тем, что на *nix системах присутствуют сразу обе версии языка.

Также если на вашем компьютере имеется несколько версий языка Python (например, 3.6 , 3.8 , 3.9 ), то менеджер пакетов может применяться отдельно для каждой из них:

После установки менеджера пакетов и определения его версии не следует забывать об его обновления до последнего издания. Для windows систем:
Для Linux или macOS :

3. Установка и удаление пакетов

Наиболее часто используемая команда в менеджере пакетов связана с непосредственной установкой необходимых модулей. Для примера установим библиотеку NumPy (позволяет эффективно работать с многомерными массивами и включает ряд соответствующих математических функций).
После выполнения команды данный модуль добавится в вашу библиотеку со всеми необходимыми дополнениями. Важно отметить, что будет загружена последняя версия NumPy . Бывают случаи, когда для проекта используется определенная версия пакета. Чтобы ничего не «сбилось», требуется установить именно этот релиз либо версию, которая не ниже определенной. Для этого применяются следующие команды:
Имеются и другие операторы ( > , < и т.п.). Даже если пакет уже установлен и работает некорректно можно принудительно его переустановить.

При разработке сложных проектов может понадобиться установка большого количества модулей. Постоянно их скачивать из репозитория PyPi трудоемко. Для этого разработан способ загрузки пакетов локально. Они могут находиться в архивах ( *.tar.gz ) или специальных файлах с расширением .whl . Это удобно и в том случае, если нет доступа в интернет у выбранной машины, и вы заранее создали пакет со всеми необходимыми библиотеками.

Для примера запакуем модуль numpy в «колесо» ( wheel ) и установим его оттуда.

Рассмотрим вопрос удаления модулей. Если требуется удалить один пакет, то делается это по аналогии с установкой:

Для удаления нескольких модулей их можно перечислить через пробел или воспользоваться файлом requirements.txt . Чтобы при стирании библиотек постоянно не запрашивалось подтверждение от пользователя ( «введите Y для удаления или N для отмены» ), применяется ключ -y или --yes .
К слову, при установке нового пакета или его обновлении старая версия удаляется из библиотеки конкретного окружения.

4. Файлы требований для управления пакетами

Серьезные и многоуровневые приложения никогда не обходятся одной библиотекой. Даже когда вы устанавливали тот же NumPy , вы могли заметить, что помимо самого модуля скачивались дополнительные пакеты, которые мы не запрашивали. Естественно они необходимы для правильной работы NumPy . Но откуда известно, что они нужны?

Читайте также: