Перейти к основному содержимому

Экосистема Python-приложений

Play ITЗагрузка интерактивного демо…

Разработчику Архитектору

Play ITЗагрузка интерактивного демо…


Экосистема Python-приложений

Python — это язык программирования, вокруг которого сформировалась одна из самых разнообразных и насыщенных экосистем в мире современного программного обеспечения. Эта экосистема охватывает все уровни разработки и включает в себя фреймворки, библиотеки, инструменты сборки, среды выполнения, системы тестирования и специализированные платформы, объединённые общей философией ясности, простоты и гибкости.


Сборка в Python

Сборка в Python — это процесс создания исполняемого файла или пакета из исходного кода на языке Python. Этот этап необходим для распространения программ без установки интерпретатора Python на целевой машине. В Python для сборки применяются специализированные инструменты, которые упаковывают код, зависимости и ресурсы в один или несколько файлов.

Самый популярный инструмент сборки — PyInstaller. Он позволяет создавать исполняемые файлы для Windows, macOS и Linux из Python-скриптов. PyInstaller анализирует код и автоматически определяет зависимости, включая сторонние библиотеки и модули, необходимые для работы программы.

PyInstaller может собирать приложения в различные форматы:

  • .exe — исполняемый файл для Windows;
  • .app — пакет для macOS;
  • .sh или исполняемый файл — для Linux.

Также поддерживаются дополнительные форматы, включая zip-архивы и контейнеры Docker.

При сборке PyInstaller анализирует исходный код и выявляет все используемые модули. Он также может включать в сборку дополнительные данные — изображения, конфигурационные файлы, базы данных и другие ресурсы. Для этого используются специальные флаги и параметры.

Сборка приложения может включать метаданные:

  • Название программы;
  • Версия;
  • Описание;
  • Автор;
  • Иконка.

Иконка задаётся через флаг --icon при сборке. Форматы иконок: .ico для Windows, .icns для macOS, .png для Linux.

Популярные флаги:

  • --onefile — создание одного файла вместо папки с ресурсами;
  • --windowed — запуск без консольного окна (полезно для графических интерфейсов);
  • --add-Data — добавление дополнительных файлов в сборку;
  • --hidden-import — явное указание скрытых импортов.

Создание исполняемого файла из Python-скрипта:

pip install pyinstaller
pyinstaller --onefile main.py
  1. Найдите результат в папке dist.

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

Пример команды:

pyinstaller --onefile --windowed --icon=app.ico main.py

Установка фреймворков и инструментов

Установка компонентов экосистемы Python выполняется через систему пакетов. Основной инструмент — утилита pip, входящая в состав стандартной поставки интерпретатора. Все операции выполняются в терминале или командной строке операционной системы.

Перед pip install удобно убедиться, что вызывается нужный интерпретатор:

python -c "print('ok')"

Базовая установка пакетов

Установка отдельного пакета:

pip install имя_пакета

Установка конкретной версии:

pip install имя_пакета==3.10.0

Обновление установленного пакета:

pip install --upgrade имя_пакета

Просмотр установленных пакетов:

pip list

Создание файла зависимостей проекта:

pip freeze > requirements.txt

Установка зависимостей из файла:

pip install -r requirements.txt

Изоляция окружений

Перед установкой пакетов рекомендуется создать изолированное окружение. Это предотвращает конфликты версий между разными проектами и сохраняет чистоту глобальной установки Python.

Создание виртуального окружения через встроенный модуль venv:

python -m venv myenv

Активация окружения:

  • Windows (PowerShell):
myenv\Scripts\Activate.ps1
  • Windows (cmd):
myenv\Scripts\activate.bat
  • macOS/Linux:
source myenv/bin/activate

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


Установка основных категорий инструментов

Графические интерфейсы

Код ITЗагрузка примера кода…


Веб-фреймворки и серверы

Код ITЗагрузка примера кода…


Фоновые задачи

# Celery с брокером Redis
pip install celery redis

# RQ (Redis Queue)
pip install rq redis

Тестирование

Код ITЗагрузка примера кода…


Научные вычисления и машинное обучение

Код ITЗагрузка примера кода…


Управление зависимостями и качество кода

# Poetry
curl -sSL https://install.python-poetry.org | python3 -

# Conda — отдельная установка с сайта anaconda.com или miniconda.com

# Форматирование и анализ
pip install black isort flake8 mypy

Интерактивные среды

# Jupyter Notebook и расширения
pip install notebook jupyterlab ipywidgets

Систематизация ключевых компонентов экосистемы

1. Прикладные фреймворки и клиентские приложения

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

Фреймворки для графических интерфейсов:

ФреймворкТип интерфейсаОсноваСценарий применения
TkinterДесктопTcl/TkПрототипирование, учебные проекты, простые утилиты
PyQt5ДесктопQtПрофессиональные приложения с богатым интерфейсом
PySide6ДесктопQtАльтернатива PyQt с официальной поддержкой Qt Company
KivyМобильный/десктопOpenGL ES 2Мультитач-приложения, интерактивные установки
TogaНативный десктопСистемные APIПриложения с нативным внешним видом на каждой платформе
BeeWareМультиплатформаНабор инструментовСоздание нативных пакетов (.app, .apk) из единого кода
Tkinter

Tkinter — стандартная библиотека для создания графических интерфейсов в Python. Она является обёрткой над системой Tcl/Tk, которая существует с конца 1980-х годов и до сих пор активно используется благодаря своей простоте и кроссплатформенности. Tkinter подходит для быстрого прототипирования, учебных проектов и небольших утилит, где не требуется сложный дизайн или высокая производительность. Интерфейсы, созданные с помощью Tkinter, выглядят нейтрально и работают одинаково на Windows, macOS и Linux.

Учебные материалы: Tkinter и GUI · Первая программа на Tkinter · Справочник по Tkinter — элементы UI · Примеры с разбором (Lab). Общая теория десктопа — Архитектура десктопных приложений.

PyQt и PySide

PyQt и PySide — это две реализации привязок к фреймворку Qt, одному из самых мощных и зрелых инструментов для разработки десктопных приложений. Qt предоставляет богатый набор виджетов, средства для работы с графикой, мультимедиа, сетью и базами данных. PyQt, разрабатываемый компанией Riverbank Computing, и PySide, официально поддерживаемый The Qt Company, дают разработчикам доступ ко всем возможностям Qt через Python. Эти библиотеки используются в профессиональных приложениях, требующих сложной логики взаимодействия, высокой отзывчивости и современного внешнего вида.

Учебные материалы: PyQt, PySide и Flet · Первая программа на PyQt6.

Kivy

Kivy — фреймворк, ориентированный на создание мультитач-приложений, в первую очередь для мобильных устройств, но также работающий на десктопах. Kivy использует собственную графическую систему на основе OpenGL ES 2, что позволяет ему обеспечивать плавную анимацию и отзывчивость даже на устройствах с ограниченными ресурсами. Он особенно популярен среди разработчиков, создающих интерактивные установки, образовательные приложения и игры.

Учебные материалы: Kivy — мобильные приложения и игры на Python · Практикум Kivy (2048, Pong, Snake) · мобильный раздел.

Toga

Toga — кроссплатформенный GUI-фреймворк, который использует нативные элементы управления каждой операционной системы. Он подходит для сценариев, где важен нативный внешний вид приложения на Windows, macOS и Linux.

BeeWare

BeeWare — более широкий проект, включающий Toga и инструменты для упаковки Python-приложений в нативные форматы (например, .app для macOS или .apk для Android). Цель BeeWare — позволить писать один код на Python и развертывать его как полноценное нативное приложение на разных платформах.

В последние годы появился интерес к использованию Python для создания веб-фронтенда. Такие проекты, как Anvil, PyScript и Streamlit, предлагают альтернативные пути взаимодействия с пользователем через браузер. Anvil позволяет писать полноценные веб-приложения на Python, включая клиентскую и серверную части, без необходимости использовать JavaScript. PyScript — это экспериментальная технология, позволяющая выполнять Python-код прямо в браузере с помощью WebAssembly и интерпретатора Pyodide. Streamlit — это фреймворк для быстрого создания интерактивных веб-интерфейсов для аналитики и машинного обучения, где каждое изменение в коде немедленно отражается в браузере. Эти инструменты расширяют границы Python за пределы традиционных областей применения, делая его языком полного стека.


2. Серверные и фоновые службы

Серверная часть экосистемы Python основана на стандартах WSGI (Web Server Gateway Interface) и ASGI (Asynchronous Server Gateway Interface), которые определяют, как веб-сервер взаимодействует с Python-приложением. WSGI — это синхронный интерфейс, ставший де-факто стандартом для большинства веб-фреймворков Python. ASGI — его асинхронное расширение, поддерживающее WebSocket, HTTP/2 и другие современные протоколы.

Веб-фреймворки и серверы:

КомпонентИнтерфейсОсобенностьТипичное применение
DjangoWSGIПолнофункциональный фреймворк "всё включено"CMS, корпоративные системы, социальные платформы
FlaskWSGIМикрофреймворк с минимальным ядромREST API, микросервисы, прототипы
FastAPIASGIАвтоматическая генерация OpenAPI, типизацияВысокопроизводительные API, микросервисы
QuartASGIАсинхронная версия FlaskПриложения, требующие асинхронности в стиле Flask
SanicASGIВысокая производительность "из коробки"Высоконагруженные сервисы реального времени
aiohttpASGIНизкоуровневый асинхронный клиент и серверСетевые приложения с тонкой настройкой
uvicornASGI-серверВысокая скорость, поддержка HTTP/2Запуск FastAPI и других ASGI-приложений
gunicornWSGI-серверНадёжность, процессы-воркерыПродакшн-развёртывание Django и Flask
Django

Django — это полнофункциональный веб-фреймворк, следующий принципу "всё включено". Он предоставляет ORM, систему аутентификации, административный интерфейс, маршрутизацию, шаблонизатор и множество других компонентов, позволяющих быстро создавать масштабируемые и безопасные веб-приложения. Django часто используется для построения контент-менеджеров, социальных платформ, корпоративных систем и API.

Учебные материалы: Django · Справочник по Django · Первая программа на Django · Практикум — доска объявлений · Первая программа на Django REST Framework.

Flask

Flask — это микрофреймворк, предлагающий минималистичный каркас для веб-приложений. Он не навязывает структуру проекта и позволяет разработчику выбирать необходимые компоненты. Flask популярен для создания REST API, микросервисов и прототипов, где важна гибкость и контроль над архитектурой.

Учебные материалы: Flask · Справочник по Flask · Первая программа на Flask.

FastAPI

FastAPI — современный фреймворк, ориентированный на создание высокопроизводительных API с автоматической генерацией документации. Он основан на ASGI и полностью поддерживает асинхронное программирование. FastAPI использует типизацию Python для валидации данных и генерации OpenAPI-спецификаций, что делает его особенно удобным для разработчиков, стремящихся к строгой контрактной модели взаимодействия.

Учебные материалы: FastAPI · Первая программа на FastAPI · FastAPI и база данных.

Quart, Sanic и aiohttp

Другие ASGI-совместимые фреймворки, такие как Quart (асинхронная версия Flask), Sanic и aiohttp, расширяют возможности асинхронной веб-разработки. Они позволяют обрабатывать тысячи одновременных соединений с минимальными затратами ресурсов, что особенно важно для реального времени, чатов, игровых серверов и IoT-платформ.

Другие open-source веб-фреймворки
ФреймворкОсобенностьТипичное применение
PyramidГибкая «пирамида» слоёв — от одного файла до крупного проектаПроекты с нестандартной архитектурой
TornadoСобственный event loop, WebSocket, long pollingЧаты, прокси, долгие соединения
BottleОдин модуль без внешних зависимостейУтилиты, встраивание
FalconМинимальный API-слой, высокий RPSREST-микросервисы
StarletteНизкоуровневый ASGI-каркасОснова FastAPI, кастомные ASGI-приложения
HugДекораторы → автодокументацияБыстрые внутренние API
CherryPyООП: объекты публикуются как URLВстраиваемые серверы
Web2pyFull-stack + веб-IDEОбучение, быстрые CRUD
TurboGearsКомпозиция Werkzeug/SQLAlchemyГибкий full-stack
LitestarСовременный ASGI, типы, OpenAPIТипизированные API на Python 3.10+

Сводная таблица по всем языкам — Open-source веб-фреймворки.

Celery

Для выполнения длительных задач вне основного потока запросов используются системы фоновой обработки. Celery — распределённая очередь задач, поддерживающая множество брокеров сообщений (RabbitMQ, Redis и другие). Она позволяет выполнять тяжёлые вычисления, отправку электронной почты, обработку медиафайлов и другие операции асинхронно.

RQ

RQ (Redis Queue) — более простая и легковесная альтернатива Celery, использующая Redis в качестве брокера. RQ ценится за прозрачность, простоту настройки и удобство отладки.


3. Тестовые и вспомогательные проекты

Надёжность программного обеспечения достигается через систематическое тестирование, и экосистема Python предлагает богатый арсенал инструментов для проверки корректности кода на всех уровнях — от единичных функций до комплексных пользовательских сценариев.

Инструменты тестирования:

ИнструментУровень тестированияОсобенностьПреимущество
unittestМодульныйВстроен в стандартную библиотекуОтсутствие внешних зависимостей
pytestМодульный/интеграционныйПростой синтаксис, богатая экосистема плагиновВыразительность, параметризованные тесты, фикстуры
doctestДокументационныйТесты внутри строк документацииАктуальность примеров в документации
SeleniumEnd-to-endУправление реальным браузеромТестирование сложных пользовательских сценариев
PlaywrightEnd-to-endСовременная архитектура, поддержка трёх браузеровСтабильность, скорость, работа с динамическим контентом
HypothesisProperty-basedГенерация тестовых данных на основе свойствОбнаружение граничных случаев и скрытых ошибок
unittest

unittest — встроенный модуль стандартной библиотеки Python, реализующий подход к тестированию, вдохновлённый фреймворком JUnit из мира Java. Он предоставляет классы для организации тестовых случаев, методы установки и завершения окружения (setUp и tearDown), а также средства для группировки тестов и генерации отчётов.

pytest

pytest — сторонний, но чрезвычайно популярный фреймворк для тестирования, отличающийся лаконичностью синтаксиса и мощными возможностями расширения. В pytest не требуется наследование от специальных классов: достаточно написать функцию с префиксом test_, и она автоматически станет тестом. Фреймворк поддерживает параметризованные тесты, фикстуры (fixtures) для управления состоянием между тестами, плагины для интеграции с другими системами и подробные отчёты об ошибках.

Учебные материалы: Тестирование на pytest.

doctest

doctest — модуль стандартной библиотеки, позволяющий писать тесты прямо в документации. Он извлекает примеры использования функций из строк документации и проверяет, совпадают ли фактические результаты с ожидаемыми.

Selenium и Playwright

Для тестирования взаимодействия с внешними сервисами и веб-интерфейсами применяются специализированные инструменты. Selenium и Playwright — это фреймворки для end-to-end тестирования веб-приложений. Они управляют реальным браузером (или его безголовой версией), имитируя действия пользователя — клики, ввод текста, навигацию.

Requests-Mock

Requests-Mock — утилита для имитации HTTP-запросов, отправляемых с помощью популярной библиотеки requests. Она позволяет изолировать тестируемый код от реальных сетевых вызовов, что ускоряет выполнение тестов и делает их детерминированными.

Hypothesis

Hypothesis — библиотека для property-based testing, где вместо задания конкретных входных данных тест генерирует тысячи случайных значений на основе описанных свойств. Если хотя бы одно значение приводит к сбою, Hypothesis автоматически упрощает его до минимального воспроизводящего примера.


4. Интеграционные и специализированные платформы

Python стал де-факто стандартом в научных и аналитических областях благодаря своей выразительности и зрелым библиотекам.

Научные и аналитические библиотеки:

БиблиотекаНазначениеКлючевая структура данныхСценарий применения
NumPyЧисленные вычисленияМногомерный массив ndarrayМатематические операции над массивами, линейная алгебра
SciPyНаучные алгоритмыРасширение NumPyОптимизация, интегрирование, обработка сигналов
PandasАнализ данныхDataFrame, SeriesОбработка табличных данных, очистка, агрегация
scikit-learnМашинное обучениеЕдиный API для алгоритмовКлассификация, регрессия, кластеризация
TensorFlowГлубокое обучениеТензоры, графы вычисленийProduction-развёртывание нейросетей
PyTorchГлубокое обучениеДинамические вычислительные графыИсследования, прототипирование моделей
spaCyNLPDoc, Token, SpanПромышленная обработка текста с высокой скоростью
Hugging Face TransformersNLPПредобученные моделиState-of-the-art решения для языковых задач
NumPy

NumPy предоставляет эффективные многомерные массивы и операции над ними, оптимизированные на уровне C. Это основа для большинства вычислительных задач в Python.

SciPy

SciPy расширяет NumPy, добавляя алгоритмы для оптимизации, интегрирования, обработки сигналов, линейной алгебры и статистики.

Pandas

Pandas — библиотека для анализа и манипуляции табличными данными, предлагающая структуры DataFrame и Series, похожие на электронные таблицы, но с большей мощью и гибкостью.

Учебные материалы — 337 — NumPy: теория · Анализ данных — pandas, NumPy, SciPy · NumPy — массивы и матрицы (Lab) · Pandas — объединение таблиц, своды и временные ряды · примеры типовых операций. Математика LA — 342, 343.

scikit-learn

scikit-learn — библиотека классического машинного обучения, содержащая сотни алгоритмов для классификации, регрессии, кластеризации и предварительной обработки данных. Она ценится за согласованность API и отличную документацию.

Учебные материалы: Классическое машинное обучение на Python.

TensorFlow

TensorFlow — фреймворк глубокого обучения с поддержкой автоматического дифференцирования, GPU-ускорения и production-развёртывания моделей.

PyTorch

PyTorch — фреймворк глубокого обучения с динамическими вычислительными графами, который популярен в исследовательской среде и удобен в отладке.

Учебные материалы: PyTorch для разработчика.

spaCy

spaCy — промышленно ориентированная библиотека с высокой производительностью, предоставляющая готовые модели для токенизации, распознавания именованных сущностей, анализа зависимостей и других задач.

NLTK

NLTK — академический инструмент для NLP, богатый учебными материалами и алгоритмами.

Hugging Face Transformers

Hugging Face Transformers предоставляет доступ к тысячам предобученных моделей на основе архитектур BERT, GPT и других, что позволяет быстро внедрять state-of-the-art решения в проекты.

Работа с базами данных в Python осуществляется через ORM и низкоуровневые драйверы. SQLAlchemy — это мощный объектно-реляционный маппер, сочетающий декларативный стиль описания моделей с гибким SQL-выражением. Он поддерживает сложные запросы, связи между таблицами и транзакции. Peewee — более лёгкая альтернатива, подходящая для небольших проектов. Django ORM — часть фреймворка Django, интегрированная с его системой моделей и миграций.

Для асинхронного взаимодействия с базами данных используются специализированные драйверы — asyncpg для PostgreSQL, aiomysql для MySQL, motor для MongoDB. Они позволяют выполнять запросы без блокировки основного потока выполнения, что критично для высоконагруженных ASGI-приложений.

Оркестрация сложных рабочих процессов данных осуществляется с помощью Apache Airflow, Prefect и Dagster. Эти платформы позволяют описывать конвейеры обработки данных как графы зависимостей, отслеживать их выполнение, управлять расписаниями и обрабатывать ошибки. Airflow — самый зрелый из них, с огромной экосистемой плагинов. Prefect и Dagster предлагают более современные подходы к управлению состоянием и наблюдаемости.

Инструменты управления проектом:

ИнструментФункцияФормат конфигурацииОсобенность
pipУстановка пакетовrequirements.txtСтандарт де-факто, входит в поставку Python
venvИзоляция окруженийКаталог с интерпретаторомВстроен в стандартную библиотеку
PoetryУправление зависимостями и сборкаpyproject.tomlЕдиный инструмент для всего жизненного цикла пакета
condaУправление пакетами и окружениямиenvironment.ymlРабота с бинарными зависимостями на уровне ОС
BlackФорматирование кодаОтсутствует (фиксированные правила)Полное устранение споров о стиле
isortСортировка импортовpyproject.toml / .isort.cfgАвтоматическая группировка и упорядочение импортов
flake8Линтерsetup.cfg / .flake8Проверка PEP 8 и обнаружение потенциальных ошибок
mypyСтатическая типизацияpyproject.tomlПроверка аннотаций типов до выполнения

5. Расширения и инструменты разработки

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

Управление пакетами начинается с pip — стандартного инструмента установки библиотек из PyPI (Python Package Index). Он позволяет устанавливать, обновлять и удалять пакеты, а также разрешать их зависимости. Для изоляции проектов используются виртуальные окружения. Встроенный модуль venv создаёт независимые каталоги с собственной копией интерпретатора и установленных пакетов, предотвращая конфликты версий между проектами.

Более современные инструменты, такие как Poetry и conda, расширяют эти возможности. Poetry объединяет управление зависимостями, виртуальными окружениями и сборкой пакетов в едином интерфейсе. Он использует файл pyproject.toml для декларативного описания зависимостей, включая точные версии и группы (например, для разработки и production). Poetry автоматически создаёт и управляет виртуальным окружением, упрощая настройку проекта. conda — это система управления пакетами и окружениями, изначально созданная для научных вычислений. Она работает не только с Python-пакетами, но и с бинарными зависимостями на уровне операционной системы, что особенно полезно при работе с библиотеками, требующими компиляции (например, NumPy или TensorFlow).

Сборка и распространение пакетов регулируется стандартами, закреплёнными в PEP 517 и PEP 518, которые продвигают использование файла pyproject.toml как центрального места конфигурации проекта. Этот файл заменяет устаревшие setup.py и setup.cfg, предоставляя единообразный способ указания инструментов сборки (например, setuptools, flit или hatch) и их параметров. setuptools остаётся самым распространённым инструментом для создания дистрибутивов, хотя его постепенно вытесняют более современные альтернативы.

Качество кода поддерживается с помощью линтеров, форматтеров и статических анализаторов. Black — это "неформатируемый" форматтер кода, который применяет строгие правила оформления без возможности настройки. Его цель — полностью устранить споры о стиле в команде. isort автоматически сортирует и группирует импорты по заданным правилам. flake8 проверяет соответствие кода рекомендациям PEP 8 и выявляет потенциальные ошибки. mypy — это статический анализатор типов, который проверяет корректность аннотаций типов в коде, помогая находить ошибки до выполнения программы.

Jupyter Notebook и JupyterLab — это интерактивные среды для исследования данных, прототипирования и документирования кода. Они позволяют смешивать исполняемый код, визуализации, математические формулы (в виде Markdown) и пояснительный текст в одном документе. Jupyter стал стандартом в научных и образовательных кругах, а также широко используется в индустрии для аналитики и машинного обучения.

Для повышения производительности критических участков кода применяются инструменты, связывающие Python с низкоуровневыми языками. Cython позволяет писать C-подобный код с аннотациями типов, который компилируется в расширения CPython. Это даёт значительный прирост скорости при сохранении совместимости с Python. PyO3 — это фреймворк для написания расширений на Rust, сочетающий безопасность памяти и производительность Rust с гибкостью Python. CFFI (C Foreign Function Interface) предоставляет простой способ вызывать функции из существующих C-библиотек без написания обёрток на C.


5.1 Популярные прикладные библиотеки и модули

Requests

Requests — базовая библиотека для HTTP-клиентов в синхронных приложениях.

HTTPX

HTTPX — современный HTTP-клиент с поддержкой синхронного и асинхронного режимов.

Retrying

Retrying — библиотека для повторных попыток выполнения операций при временных сбоях.

Dramatiq

Dramatiq — система фоновых задач с простым API и поддержкой RabbitMQ/Redis.

Matplotlib

Matplotlib — базовый инструмент визуализации данных и научной графики в Python. Глава — Matplotlib — графики, примеры — в лаборатории.

Pillow

Pillow — библиотека для обработки изображений и работы с растровой графикой.

Keras

Keras — высокоуровневый API для сборки и обучения нейросетей, часто поверх TensorFlow.

Pymorphy2

Pymorphy2 — морфологический анализатор русского языка.

Pymystem3

Pymystem3 — обёртка над Yandex mystem для лемматизации русского текста.

OpenCV

OpenCV — библиотека компьютерного зрения и обработки изображений/видео.

Rich

Rich — библиотека для форматированного вывода в терминал — таблицы, прогресс-бары, подсветка.

Loguru

Loguru — упрощённый логгер с удобной настройкой и читаемыми сообщениями.

Pydantic

Pydantic — валидация и сериализация данных на основе type hints. Общая шкала проверок (null, тип, диапазон) — Проверка и валидация.

Dateparser

Dateparser — парсинг дат из естественного языка.

py-spy

py-spy — профилировщик Python-приложений без модификации исходного кода.

Pympler

Pympler — анализ потребления памяти Python-объектами.

Responses

Responses — мокирование HTTP-запросов к requests в тестах.

Freezegun

Freezegun — фиксация системного времени в тестах.

Faker

Faker — генерация тестовых данных — имён, адресов, email и других сущностей.

factory_boy

factory_boy — декларативное создание тестовых объектов и фабрик.

Funcy

Funcy — утилиты функционального программирования для коллекций и пайплайнов.

tqdm

tqdm — прогресс-бары для циклов, batch-задач и CLI-пайплайнов.

Black

Black — стандартный автоформаттер Python-кода с фиксированными правилами.

Дополнительные часто используемые библиотеки:

  • SQLAlchemy — ORM и SQL-конструктор.
  • Alembic — миграции схемы БД.
  • Redis-py — клиент Redis.
  • orjson — быстрый JSON-сериализатор.
  • Typer — создание CLI на type hints.
  • Click — mature-фреймворк для CLI.
  • Polars — высокопроизводительная аналитика табличных данных; сравнение с Pandas, SQL и PySpark — напоминалка.
  • Seaborn — статистическая визуализация поверх Matplotlib.
  • XGBoost — бустинг для задач табличного ML.
  • pytest-asyncio — тестирование асинхронного кода на pytest.

6. Экспериментальные и нишевые направления

Экосистема Python постоянно расширяется за счёт экспериментальных и специализированных решений, которые открывают новые области применения языка.

MicroPython и CircuitPython — это реализации Python, оптимизированные для микроконтроллеров и устройств с ограниченными ресурсами. MicroPython стремится к максимальной эффективности и минимальному размеру, тогда как CircuitPython, созданный компанией Adafruit, делает упор на удобство для новичков и образовательных целей. Обе платформы позволяют программировать железо на Python, управляя светодиодами, датчиками, моторами и другими периферийными устройствами.

В веб-разработке продолжаются попытки использовать Python на стороне клиента. Brython — это реализация Python 3, работающая в браузере и транслирующая код в JavaScript. Transcrypt — это транспайлер, преобразующий подмножество Python в читаемый JavaScript, позволяя писать клиентский код на привычном языке. Эти проекты пока не получили массового распространения, но демонстрируют стремление сообщества расширить границы Python.

В области искусственного интеллекта появились высокоуровневые фреймворки для построения приложений на основе языковых моделей. LangChain и LlamaIndex (ранее GPT Index) предоставляют абстракции для работы с внешними источниками данных, цепочками вызовов, памятью и агентами. Они упрощают создание сложных ИИ-приложений, таких как чат-боты с доступом к базе знаний, системы анализа документов или автоматизированные исследователи.

Наконец, серверная инфраструктура Python включает в себя специализированные ASGI- и WSGI-серверы. uvicorn — это быстрый ASGI-сервер на основе uvloop и httptools, часто используемый с FastAPI и Starlette. gunicorn — надёжный WSGI-HTTP-сервер, популярный в связке с Django и Flask. hypercorn — это ASGI-сервер, поддерживающий HTTP/2 и QUIC, ориентированный на современные протоколы и высокую производительность.


Основа по протоколу

Базовый разбор HTTP и HTTPS находится в отдельной статье — HTTP как основа веб-интеграций.