Одна из причин популярности Python — наличие большого числа фреймворков и библиотек (libraries, lib). И это хорошо, ведь чем больше дополнительных пакетов, тем больше вариантов по использованию языка открывается перед программистом. В этой статье мы рассмотрим десять Python libraries, посредством которых работа с Python становится проще и эффективнее.
Requests
Requests предназначена для того, чтобы сделать HTTP-запросы проще и удобнее. Эта библиотека (library, lib) написана на Python и является условным стандартом для многих разработчиков. Позволяет добавлять к HTTP-запросам:
— данные формы;
— заголовок;
— содержимое;
— файлы из нескольких частей и так далее.
Благодаря ей, больше не надо добавлять запрос в URL либо выполнять кодировку POST-данных вручную.
Особенности Requests:
- многокомпонентная загрузка файлов, возможность потоковой загрузки;
- автодекодирование контента, автораспаковка;
- проверка SSL;
- возможность настройки и оптимизации функций согласно требованиям;
- Keep-Alive & Connection Pooling;
- поддержка международных URL и доменов.
Pillow
Pillow, она же PIL — бесплатная библиотека Python, предназначенная для работы с изображениями, а также для архивирования и отображения картинок и фото.
Особенности Pillow:
- поддерживает отладку с применением метода show;
- совместима с программными приложениями пакетной обработки;
- поддерживает много форматов файлов;
- имеет интерфейсы BitmapImage, PhotoImage, а также Window DIB.
Также она обеспечивает поддержку:
— произвольных аффинных преобразований,
— преобразований цветового пространства,
— фильтрации посредством встроенных ядер свертки,
— изменения размера изображения,
— поворота изображения,
— точечных операций.
Вдобавок к этому, поддерживается метод гистограммы, позволяющий получать статистику изображения, что может применяться разработчиком как для статистического анализа, так и для автоповышения контрастности.
Scrapy
Относится к числу libraries с открытым исходным кодом, предназначена для извлечения данных web-сайта, а также для автотестирования, интеллектуального анализа данных, интернет-сканирования.
Плюсы Scrapy:
- написание рабочих скриптов не составляет труда;
- предоставляется оболочка для сканирования сайтов (она же дает возможность тестировать поведение сайта);
- поддержка экспорта очищенных данных посредством командной строки.
Asyncio
Нужна для облегчения работы с асинхронным кодом. Обычно ее задействуют для написания параллельного кода с применением async/await-синтаксиса. Поставляется с несколькими низко- и высокоуровневыми API.
Преимущества:
- обеспечивает управление подпроцессами и распределение задач через очереди;
- выполняет сетевой ввод-вывод, позволяет синхронизировать параллельный код;
- дает возможность соединять libraries на основании кода и обратных вызовов посредством async/await-синтаксиса и с применением низкоуровневых API;
- набор высокоуровневых API обеспечивает одновременную работу сопрограмм Python и полный контроль над их выполнением.
Tkinter
Библиотека под названием Tkinter служит для разработки приложений с графическим интерфейсом (GUI). Пользователю предлагаются более пятнадцати типов виджетов, в том числе метки, кнопки, текстовые поля. Виджеты поддерживают методы управления геометрией. Tkinter lib хорошо выполняет свои функции, поддерживает объектно-ориентированный интерфейс и упрощает разработку ПО с графическим интерфейсом.
Six
Мощный инструмент, позволяющий упрощать различия между разными версиями Python 2 и Python 3. Ее можно назвать библиотекой совместимости Python 2 и Python 3. Six lib поддерживает данные кодовой базы и Python 2, и Python 3, позволяя работать с разными версиями, причем без надобности модификаций.
Плюсы:
- простые служебные функции, обеспечивающие кодовую совместимость с Python 2 и с Python 3;
- поддержка любой версии, начиная с Python2.6;
- простота в применении — все находится в одном Python-файле.
Aiohttp
Библиотека работает асинхронным HTTP-клиентом либо сервером в Python. Вдобавок к этому, предоставляется готовая поддержка Client WebSockets/Server WebSockets.
Преимущества:
- предлагается web-сервер с промежуточным ПО, сигналами и подключаемой маршрутизацией;
- встроена поддержка и клиентских, и серверных web-сокетов.
Pygame
Бесплатная библиотека, предназначенная для разработки мультимедийных Python-приложений, причем особенно для тех, которые относятся к 2D-проектам игровой направленности. Pygame пригодится и начинающими, и опытным разработчиками игр на языке программирования Python.
Задействовав расширение pgs4a, приложение можно портировать на смартфоны и планшеты, работающие на Android-платформе.
Нюансы:
- не требует OpenGL;
- упрощает применение многоядерных процессоров;
- чтобы использовать все доступные функции, графический интерфейс не нужен;
- поддерживает широкий спектр платформ и ОС;
- простота и удобство в применении;
- при реализации основных функций используется ассемблерный код и оптимизированный C-код.
Kivy
Kivy пригодится при создании мобильных приложений, а также приложений для устройств multi-touch с Natural User Interface. Код библиотеки открыт, распространение осуществляется по MIT-лицензии. Поддерживается работа со многими ОС: iOS, Android, Linux, macOS, Windows. Также поддерживается Raspberry Pi. Промежуточным языком Kivy является Kv — он нужен, чтобы описывать взаимодействие с пользователем и интерфейсом.
Нюансы:
- кроссплатформенность;
- более двадцати расширяемых виджетов;
- поддерживается графический движок, который построен на OpenGL ES 2.
Bokeh
Интерактивная библиотека Python, предоставляющая возможность эффективно визуализировать данные в современных web-браузерах. Упрощает создание инфопанелей, интерактивных графиков, приложений о данных.
Плюсы Bokeh:
- предоставляет возможность создавать сложные статистические графики, причем делает это посредством относительно простых команд;
- создает интерактивные и элегантные визуализации данных, которые можно без проблем встраивать во фреймворки Django и Flask;
- поддерживает разные форматы вывода и многоязычные привязки (Julia, «Пайтон», Lua, R).
Вывод
Знание вышеописанных инструментов — прекрасный шаг к тому, чтобы повысить свой уровень разработки на «Питоне». Также важно отметить, что эти библиотеки постоянно улучшаются и обновляются. Если тема вам интересна, исчерпывающую информацию можно получить в официальной документации.
Источник: https://zen.yandex.ru/media/itgap/top10-osnovnyh-bibliotek-na-python-5db2a6823f548700ac5b1908.