Here’s a Quick Way to Learn About Installing Packages using PIP in Python
Either you are a newbie Python developer or an experienced one, it is impossible to write or develop a Python application without using the pip install command. While this command saves tons of time and magically installs all the packages that we need, PIP can be a little daunting for a person who has just ventured into Python. In the blog post, I will decode it bit by bit and ensure that you have a firm understanding of how PIP works.
Pip stands for Python Package Manager.
When you install python on your system, it comes with a set of pre-defined packages that are present in the Python standard library. Examples include DateTime, string, math, etc.
But what if you want to install additional packages? Something like NumPy or pandas for data manipulation.
How Pip Install Works?
PIP is a collection of software tools that automates the process of installing, upgrading, configuring, and removing computer programs for a computer’s operating system in a consistent manner. It allows you to install and manage additional packages that are not present in the Python standard library.
If you want to install a package without pip, you need to perform the following steps:
- Download the package
- Unzip it if it is zipped
- Go to the directory using cd containing setup.py
- Type in python setup.py install
- If everything goes right, which rarely does in one go, the files will be installed into subdirectories of the site- USER_BASE.
Now imagine, not doing any of the steps and just typing 3 words to get your installation done. Doesn’t that sound magical?
Well, pip accomplishes it using the one-line command:
pip и файл requirements.txt
Мы с вами уже знакомы с менеджером пакетов для языка Python по возможности я буду дополнять эту страницу различными полезными материалами.
Python Package Installer#
Можно было бы ожидать что, pip является абреавиатурой, как например npm (Node Package Manager), но как я могу судить три буквы на прямую не переводятся.
pip — система управления пакетами, которая используется для установки и управления программными пакетами, написанными на Python . Много пакетов можно найти в Python Package Index .
Python Package Index https://pypi.org/
За более полной информацией по pip советую обращаться к официальной информации:
The Python Package Installer https://pip.pypa.io/en/stable/#
Файл requirements.txt #
Представьте ситуацию, что вы передаете проект использующий сторонние зависимости своему коллеге, как ваш коллега узнает какие зависимости следует установить для работы с этим проектом? Вы скините их через мессенжер, или он будет пытаться запустить его пока не пофиксит все возникающие ImportError ?
Ладно.. может он даже установит, все необходимые пакеты.. есть еще одна, более серьезная, проблема. Вам надо добиться того чтобы зависимости были установленны с определенными версиями.
Решение этих проблем максимально простое, давайте будем хранить в проекте файлик со списком зависимостей и их версиями. Назовем мы его requirements.txt
Jinja2==2.11.1
MarkupSafe==1.1.1
psycopg2-binary==2.8.4
Такой файл вы легко можете редактировать руками или же создать файл из уже установленных зависимостей.
pip freeze > requirements.txt
Но будьте внимательны#
- Чтобы приступить к работе над проектом понадобится дольше устанавливать зависимости
- Некоторые зависимости могут требовать системных библиотек и устанавливаться весьма долго. например psycopg2
- Если вы будете автоматизировать тестирование и деплоймент вашего проекта.. вы не хотите, чтобы деплой осуществлялся слишком много времени, а контейнеры весили по 1ГБ (если вы их конечно испльзуете)
Чтобы установить зависимости перечисленные в файле requirements.txt , следует вызвать команду pip install с параметром —requirement или флагом -r и указать путь до файла со списком зависимостей.
Менеджер пакетов 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 и выше
Далее нужно убедиться, что сам 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 не установлен на вашей системе, установить его будет не сложно.
- Скачайте файл 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 [options] Со всеми командами 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 Импортирование в скрипте.
Для того чтобы воспользоваться функционалом установленного пакета, подключим его в наш скрипт, и напишем простой парсер:
#скачиваем html from urllib.request import urlopen from bs4 import BeautifulSoup 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
При подготовке материала использовались источники:
https://medium.com/swlh/heres-a-quick-way-to-learn-about-pip-in-python-18617d466c59
https://re-py-course.vercel.app/python/pip
https://qasdet.github.io/python/pip/2021/11/08/manager-pip.html