Awesome Python
Сформированный список замечательных фреймворков, библиотек, программного обеспечения и ресурсов Python.
Вдохновлён awesome-php.
-
Admin Panels — библиотеки для административных интерфейсов.
- и т. д.
Ресурсы
Новостные рассылки и подкасты.
- Новостные рассылки (Newsletters).
- Подкасты (Podcasts).
Вклад
и т. п. Django-Grappelli — джазовый скин для интерфейса администратора Django.
Flask-Admin — простой и расширяемый фреймворк административного интерфейса для Flask.
Flower — монитор в реальном времени и веб-администратор для Celery.
Jet-Bridge — фреймворк панели администратора для любого приложения с приятным пользовательским интерфейсом (например, Jet Django).
Wooey — приложение Django, которое создаёт автоматические веб-интерфейсы для скриптов Python.
Streamlit — фреймворк, который позволяет создавать информационные панели, генерировать отчёты или создавать чат-приложения за считанные минуты.
Алгоритмы и паттерны проектирования
Реализация на Python структур данных, алгоритмов и паттернов проектирования. Также см. awesome-algorithms.
- Алгоритмы
-
Algorithms — минимальные примеры структур данных и алгоритмов.
-
Python-DS — коллекция структур данных и алгоритмов для собеседований по кодированию.
-
SortedContainers — быстрая и чистая реализация Python отсортированных коллекций.
-
TheAlgorithms — все алгоритмы реализованы на Python.
- Паттерны проектирования
-
PyPattyrn — простая, но эффективная библиотека для реализации распространённых паттернов проектирования.
-
Python-Patterns — сборник паттернов проектирования на Python.
-
Transitions — лёгкая объектно-ориентированная реализация конечного автомата.
ASGI-серверы
ASGI-совместимые веб-серверы.
-
Daphne — HTTP, HTTP2 и WebSocket протокол-сервер для ASGI и ASGI-HTTP.
-
Uvicorn — молниеносная реализация сервера ASGI, использующая uvloop и httptools.
-
Hypercorn — сервер ASGI и WSGI, основанный на библиотеках Hyper и вдохновлённый Gunicorn.
Асинхронное программирование
Библиотеки для асинхронного, параллельного и параллельного выполнения. Также см. awesome-asyncio.
-
Asyncio — (стандартная библиотека Python) асинхронный ввод-вывод, цикл событий, сопрограммы и задачи.
— [awesome-asyncio]
-
Concurrent.futures — (стандартная библиотека Python) высокоуровневый интерфейс для асинхронного выполнения вызываемых объектов.
-
Multiprocessing — (стандартная библиотека Python) параллелизм на основе процессов.
-
Trio — дружественная библиотека для асинхронной параллельности и ввода-вывода.
-
Twisted — управляемый событиями сетевой движок.
-
Uvloop — сверхбыстрый цикл событий asyncio.
-
Eventlet — асинхронная среда с поддержкой WSGI.
-
Gevent — сетевая библиотека на основе сопрограмм Python, которая использует greenlet.
Аудио
Библиотеки для работы с аудио и его метаданными.
- Аудио
-
Audioread — кроссплатформенное (GStreamer + Core Audio + MAD + FFmpeg) декодирование аудио.
-
AudioFlux — библиотека для анализа аудио и музыки, извлечения признаков.
-
Dejavu — распознавание и распознавание отпечатков пальцев.
-
Kapre — препроцессоры Keras для аудио.
-
Librosa — библиотека Python для анализа аудио и музыки. Matchering — библиотека для автоматического мастеринга референсного аудио.
Mingus — продвинутый пакет теории музыки и нотации с поддержкой файлов MIDI и воспроизведения.
Pyaudioanalysis — извлечение, классификация и сегментация аудиофункций и их применение.
Pydub — манипулирование аудио с помощью простого и удобного высокоуровневого интерфейса.
Timeside — открытая веб-платформа для обработки звука.
Метаданные
Beets — менеджер музыкальной библиотеки и теггер MusicBrainz.
Eyed3 — инструмент для работы с аудиофайлами, особенно с MP3-файлами, содержащими метаданные ID3.
Mutagen — модуль Python для работы с метаданными аудио.
Tinytag — библиотека для чтения музыкальных метаданных MP3, OGG, FLAC и Wave файлов.
Аутентификация
Библиотеки для реализации схем аутентификации.
OAuth:
Authlib — реализация проекта JavaScript Object Signing and Encryption.
Django-allauth — приложение для аутентификации Django, которое «просто работает».
Django-oauth-toolkit — OAuth 2 для Django.
Oauthlib — общая и тщательная реализация логики подписи запросов OAuth.
JWT:
Pyjwt — реализация JSON Web Token на Python.
Python-jose — реализация JOSE на Python.
Инструменты сборки
Компиляция программного обеспечения из исходного кода.
Bitbake — make-подобный инструмент сборки для встроенного Linux.
Buildout — система сборки для создания, сборки и развёртывания приложений из нескольких частей.
Platformio — консольный инструмент для сборки кода с различными платформами разработки.
Pybuilder — непрерывный инструмент сборки, написанный на чистом Python.
Scons — инструмент построения программного обеспечения.
Улучшение встроенных классов
Библиотеки для улучшения встроенных классов Python.
Attrs — замена шаблонов init, eq, repr и т. д. в определениях классов.
Bidict — эффективные двунаправленные структуры данных карт и связанная функциональность.
Box — словари Python с расширенным доступом через точечную нотацию.
Dataclasses (стандартная библиотека Python) — классы данных.
Dotteddict — библиотека, предоставляющая метод доступа к спискам и словарям с использованием точечной нотации пути.
CMS
Системы управления контентом.
Feincms — одна из самых продвинутых систем управления контентом, построенная на Django.
Indico — многофункциональная система управления событиями, созданная в CERN.
Wagtail — система управления контентом Django.
Кэширование
Библиотеки кэширования данных.
Beaker — WSGI-промежуточное ПО для сеансов и кэширования.
Django-cache-machine — автоматическое кэширование и аннулирование для моделей Django.
Django-cacheops — гладкий кэш ORM с автоматическим детализированным аннулированием на основе событий.
Dogpile.cache — dogpile.cache — это замена следующего поколения для Beaker, сделанная тем же автором. Авторы:
-
hermescache — библиотека кэширования для Python с теговым аннулированием и предотвращением эффекта «собачьей кучи».
-
pylibmc — обёртка Python вокруг интерфейса libmemcached.
-
python-diskcache — бэкенд кэша с хранением в SQLite и файлах, обеспечивающий более быстрый поиск по сравнению с memcached и redis.
ChatOps Tools
Библиотеки для разработки чат-ботов.
-
errbot — самый простой и популярный чат-бот для реализации ChatOps.
Code Analysis
Инструменты статического анализа, линтеры и средства проверки качества кода. Также см. awesome-static-analysis.
Code Analysis:
-
code2flow — превращает код на Python и JavaScript в блок-схемы формата DOT.
-
prospector — инструмент для анализа кода на Python.
-
vulture — инструмент поиска и анализа мёртвого кода на Python.
Code Linters:
-
flake8 — оболочка над pycodestyle, pyflakes и McCabe.
-
pylint — полностью настраиваемый анализатор исходного кода.
Code Formatters:
-
black — бескомпромиссный форматтер кода на Python.
-
isort — утилита / библиотека Python для сортировки импорта.
-
yapf — ещё один форматтер кода от Google.
Статические анализаторы типов, также см. awesome-python-typing:
-
mypy — проверка типов переменных во время компиляции.
-
pyre-check — производительная проверка типов.
-
typeshed — коллекция библиотечных заглушек для Python со статическими типами.
Генераторы статических аннотаций типов:
-
monkeytype — система для Python, генерирующая статические аннотации типов путём сбора типов времени выполнения.
-
pytype — pytype проверяет и выводит типы для кода Python без необходимости аннотаций.
Command-line Interface Development
Библиотеки для создания приложений командной строки.
Разработка приложений командной строки:
-
cement — фреймворк для приложений командной строки на Python.
-
click — пакет для создания красивых интерфейсов командной строки с возможностью компоновки.
-
cliff — фреймворк для создания программ командной строки с многоуровневыми командами.
-
python-fire — библиотека для создания интерфейсов командной строки из абсолютно любого объекта Python.
-
python-prompt-toolkit — библиотека для построения мощных интерактивных командных строк.
Визуализация терминала:
-
alive-progress — новый вид индикатора прогресса с реальной пропускной способностью, ETA и классными анимациями.
-
asciimatics — пакет для создания полноэкранных текстовых пользовательских интерфейсов (от интерактивных форм до ASCII-анимаций).
-
bashplotlib — создание базовых графиков в терминале.
-
colorama — кроссплатформенный цветной текст в терминале.
-
rich — библиотека Python для форматирования текста и красивой визуализации в терминале. Также предоставляет отличный обработчик журналов RichHandler.
-
tqdm — быстрый расширяемый индикатор выполнения для циклов и CLI.
Command-line Tools
Полезные инструменты командной строки для повышения продуктивности. Инструменты для повышения производительности
Улучшения интерфейса командной строки
Компьютерное зрение
Библиотеки компьютерного зрения:
Файлы конфигурации
Библиотеки для хранения и анализа конфигурационных параметров:
Криптография
Анализ данных
Библиотеки анализа данных:
Проверка данных
Библиотеки проверки данных, часто используемые для форм:
Визуализация данных
- Библиотеки для визуализации данных. Также см. awesome-javascript.
-
altair — декларативная библиотека статистической визуализации для Python.
-
bokeh — интерактивная веб-визуализация для Python.
-
bqplot — интерактивная библиотека графиков для Jupyter Notebook.
-
cartopy — картографическая библиотека Python с поддержкой matplotlib.
-
diagrams — диаграммы как код.
-
matplotlib — двумерная библиотека построения графиков Python.
-
plotnine — грамматика графики для Python на основе ggplot2.
-
pygal — создатель диаграмм SVG Python.
-
pygraphviz — интерфейс Python к Graphviz.
-
pyqtgraph — интерактивный и в реальном времени 2D/3D/построение изображений и научные/инженерные виджеты.
-
seaborn — статистическая визуализация данных с помощью Matplotlib.
-
vispy — высокопроизводительная научная визуализация на основе OpenGL.
Базы данных
- Базы данных, реализованные на Python.
-
pickleDB — простое и лёгкое хранилище «ключ-значение» для Python.
-
tinydb — крошечная документоориентированная база данных.
-
zodb — собственная объектно-ориентированная база данных для Python. База данных «ключ-значение» и объектный граф.
Драйверы баз данных
Библиотеки для подключения и работы с базами данных.
- MySQL — awesome-mysql
- PostgreSQL — awesome-postgres
-
psycopg — самый популярный адаптер PostgreSQL для Python.
- SQlite — awesome-sqlite
-
sqlite3 (стандартная библиотека Python) — интерфейс SQlite, соответствующий DB-API 2.0.
-
sqlite-utils — утилита CLI Python и библиотека для управления базами данных SQlite.
- Другие реляционные базы данных
-
pymssql — простой интерфейс базы данных для Microsoft SQL Server.
-
clickhouse-driver — драйвер Python с собственным интерфейсом для ClickHouse.
- NoSQL базы данных
-
cassandra-driver — Python-драйвер Apache Cassandra.
-
happybase — удобная для разработчиков библиотека для Apache HBase.
-
kafka-python — клиент Python для Apache Kafka.
-
pymongo — официальный клиент Python для MongoDB.
-
motor — асинхронный драйвер Python для MongoDB.
-
redis-py — клиент Redis для Python.
Дата и время
Библиотеки для работы с датами и временем.
-
arrow — библиотека Python, предлагающая разумный и удобный для человека подход. Создание, манипуляция, форматирование и преобразование дат, времени и временных меток.
-
dateutil — расширения для стандартного модуля Python datetime.
-
pendulum — упрощение работы с датами в Python.
-
pytz — определения часовых поясов мира, современные и исторические. Перенос tz базы данных в Python.
Инструменты отладки
Библиотеки для отладки кода.
- pdb-подобный отладчик:
-
ipdb — IPython-расширенный pdb.
-
pudb — полноэкранный консольный отладчик Python.
- Трассировка:
-
manhole — отладка соединений через сокеты UNIX и предоставление трассировок для всех потоков и интерактивной подсказки.
-
python-hunter — гибкий инструментарий для отслеживания кода.
- Профилировщик:
-
py-spy — выборочный профилировщик для программ на Python, написанный на Rust.
-
vprof — визуальный профилировщик Python.
- Другие:
-
django-debug-toolbar — отображение различной отладочной информации для Django.
-
flask-debugtoolbar — порт django-debug-toolbar на flask.
-
icecream — проверка переменных, выражений и выполнения программы с помощью одного простого вызова функции.
-
pyelftools — анализ и разбор файлов ELF и отладочная информация DWARF.
Глубокое обучение
Фреймворки для нейронных сетей и глубокого обучения. Также см. awesome-deep-learning.
-
keras — библиотека нейронных сетей высокого уровня, способная работать поверх TensorFlow или Theano.
-
pytorch — тензоры и динамические нейронные сети на Python с мощным ускорением на GPU.
-
pytorch-lightning — фреймворк глубокого обучения для быстрого обучения, развёртывания и поставки продуктов искусственного интеллекта.
-
stable-baselines3 — реализации PyTorch алгоритмов стабильного (глубокого) обучения с подкреплением.
-
tensorflow — самая популярная платформа глубокого обучения, созданная Google.
-
theano — библиотека для быстрых численных вычислений.
DevOps инструменты
Программное обеспечение и библиотеки для DevOps.
- Управление конфигурацией:
-
ansible — радикально простая платформа автоматизации ИТ.
-
cloudinit — мультидистрибутивный пакет, который обрабатывает раннюю инициализацию облачного экземпляра.
-
openstack — программное обеспечение с открытым исходным кодом для создания частных и публичных облаков.
-
pyinfra — универсальные инструменты CLI и библиотеки Python для автоматизации инфраструктуры.
-
saltstack — система управления и автоматизации инфраструктуры.
- Развёртывание в стиле SSH:
-
cuisine — функциональность Chef для Fabric.
-
fabric — простой инструмент Pythonic для удалённого выполнения и развёртывания.
- Управление процессами:
-
supervisor — система контроля процессов Supervisor для UNIX.
- Мониторинг:
-
psutil — кроссплатформенный модуль системных утилит и утилит процессов.
- Резервное копирование:
-
borg — архиватор с дедупликацией, сжатием и шифрованием.
Распределённые вычисления
Фреймворки и библиотеки для распределённых вычислений.
- Пакетная обработка. Dask — гибкая библиотека для параллельных вычислений в аналитических целях.
Luigi — модуль, который помогает создавать сложные конвейеры пакетных заданий.
PySpark — Python API Apache Spark.
Ray — система для параллельного и распределённого выполнения кода на Python, которая объединяет экосистему машинного обучения.
Поток обработки данных:
Faust — библиотека потоковой обработки, переносящая идеи Kafka Streams на Python.
Streamparse — выполнение кода Python на потоках данных в реальном времени с помощью Apache Storm.
Распространение
Библиотеки для создания упакованных исполняемых файлов для выпуска.
py2app — замораживает скрипты Python (Mac OS X).
py2exe — замораживает скрипты Python (Windows).
pyarmor — инструмент для запутывания скриптов Python, привязки обфусцированных скриптов к определённой машине или ограничения срока действия обфусцированных скриптов.
pyinstaller — преобразует программы Python в автономные исполняемые файлы (кросс-платформенный).
shiv — утилита командной строки для создания полностью автономных zipapps (PEP 441), но со всеми включёнными зависимостями.
Документация
Библиотеки для генерации документации по проектам.
sphinx — генератор документации Python.
pdoc — замена Epydoc для автоматического создания документации API для библиотек Python.
Загрузка
Библиотеки для загрузки.
akshare — финансовая библиотека интерфейса данных, созданная для людей!
s3cmd — инструмент командной строки для управления Amazon S3 и CloudFront.
youtube-dl — программа командной строки для скачивания видео с YouTube и других видеосайтов.
Плагины редактора и IDE
Emacs:
elpy — среда разработки Python для Emacs.
Vim:
jedi-vim — привязки Vim для библиотеки автодополнения Jedi для Python.
python-mode — плагин «всё в одном» для превращения Vim в IDE для Python.
YouCompleteMe — включает движок завершения кода на основе Jedi для Python.
Visual Studio:
PTVS — инструменты Python для Visual Studio.
Visual Studio Code:
Python — официальное расширение VSCode с богатой поддержкой Python.
IDE:
PyCharm — коммерческая IDE Python от JetBrains. Доступна бесплатная версия сообщества.
spyder — открытая IDE Python.
Электронная почта
Библиотеки для отправки и анализа электронной почты.
Почтовые серверы:
modoboa — платформа хостинга и управления почтой с современным веб-интерфейсом.
salmon — почтовый сервер Python.
Клиенты:
imbox — Python IMAP для людей.
yagmail — ещё один клиент Gmail/SMTP.
Другие:
flanker — библиотека анализа адресов электронной почты и MIME.
mailer — высокопроизводительная расширяемая структура доставки почты.
Управление средой
Библиотеки для управления версиями Python и виртуальными средами.
pyenv — менеджер версий Python. Простое управление версиями Python.
-
virtualenv — инструмент для создания изолированных сред Python.
Работа с файлами.
Функциональное программирование.
Разработка графического интерфейса пользователя.
GraphQL.
Разработка игр.
Panda3D — движок для 3D-игр, разработанный Disney.
PyGame — набор модулей Python, предназначенных для создания игр.
PyOgre — привязки Python к рендер-движку Ogre 3D. Может использоваться для игр, симуляций и других 3D приложений.
PyOpenGL — привязка Python к OpenGL и связанным API через ctypes.
PySDL2 — оболочка на основе ctypes для библиотеки SDL2.
RenPy — движок визуальных новелл.
Геолокация
Библиотеки для геокодирования адресов и работы с широтами и долготами.
-
django-countries — приложение Django, предоставляющее поле страны для моделей и форм.
-
geodjango — географический веб-фреймворк мирового класса.
-
geojson — привязки и утилиты Python для GeoJSON.
-
geopy — инструментарий геокодирования Python.
Работа с HTML и XML
Библиотеки для работы с HTML и XML.
-
BeautifulSoup — предоставляет идиомы Pythonic для перебора, поиска и изменения HTML или XML.
-
Bleach — библиотека очистки HTML на основе белого списка и текстовой линковки.
-
CSSUtils — CSS-библиотека для Python.
-
HTML5Lib — совместимая со стандартами библиотека для разбора и сериализации HTML-документов и фрагментов.
-
LXML — очень быстрая, простая в использовании и универсальная библиотека для обработки HTML и XML.
-
Markupsafe — реализует безопасную строку разметки XML/HTML/XHTML для Python.
-
PyQuery — библиотека, подобная jQuery, для анализа HTML.
-
Untangle — преобразует XML-документы в объекты Python для лёгкого доступа.
-
WeasyPrint — визуальный механизм рендеринга HTML и CSS, который может экспортировать в PDF.
-
xmldataset — простой разбор XML.
-
xmltodict — работа с XML, как с JSON.
HTTP-клиенты
Библиотеки для работы с HTTP.
-
httpx — клиент HTTP следующего поколения для Python.
-
Requests — HTTP-запросы для людей.
-
treq — API запросов Python, построенный на вершине HTTP-клиента Twisted.
-
urllib3 — потокобезопасная библиотека HTTP с пулингом соединений, поддержкой файлов и разумным подходом.
Аппаратное обеспечение
Библиотеки для программирования с аппаратным обеспечением.
-
keyboard — перехватывает и имитирует глобальные события клавиатуры на Windows и Linux.
-
mouse — перехватывает и имитирует глобальные события мыши на Windows и Linux.
-
pynput — библиотека для управления и мониторинга устройств ввода.
-
Scapy — блестящая библиотека манипуляции пакетами.
Обработка изображений
Библиотеки для манипулирования изображениями.
-
Pillow — дружественный форк PIL.
-
python-barcode — создание штрихкодов в Python без дополнительных зависимостей.
-
pymatting — библиотека альфа-матирования.
-
python-qrcode — генератор QR-кодов на чистом Python.
-
pywal — инструмент, генерирующий цветовые схемы из изображений.
-
pyvips — быстрая библиотека обработки изображений с низкими потребностями в памяти. Квады (https://github.com/fogleman/Quads) — компьютерное искусство, основанное на квадродеревьях.
Scikit-image (http://scikit-image.org/) — библиотека Python для научной обработки изображений.
Thumbor (https://github.com/thumbor/thumbor) — интеллектуальный сервис обработки изображений, который позволяет изменять размер, обрезать и переворачивать изображения по запросу.
Wand (https://github.com/emcconville/wand) — привязки Python к MagickWand (http://www.imagemagick.org/script/magick-wand.php), C API для ImageMagick.
Реализации
Реализации Python.
Интерактивный интерпретатор
Интерактивные интерпретаторы Python (REPL).
Интернационализация
Библиотеки для работы с i18n.
Планировщик заданий
Библиотеки планирования заданий.
Логирование
Библиотеки генерации и работы с логами.
Structlog — упрощённое структурированное логирование.
Машинное обучение
Библиотеки для машинного обучения. Также см. awesome-machine-learning.
-
Gym — инструментарий для разработки и сравнения алгоритмов обучения с подкреплением.
-
H2O — открытая масштабируемая платформа машинного обучения.
-
Metrics — метрики оценки машинного обучения.
-
NuPIC — платформа Numenta для интеллектуальных вычислений.
-
Scikit-learn — самая популярная библиотека машинного обучения на Python.
-
Spark ML — масштабируемая библиотека машинного обучения от Apache Spark.
-
Vowpal Porpoise — лёгкая оболочка Python для Vowpal Wabbit.
-
Xgboost — масштабируемая, переносимая и распределённая библиотека градиентного бустинга.
-
MindsDB — открытый слой искусственного интеллекта для существующих баз данных, который позволяет без усилий разрабатывать, обучать и развёртывать современные модели машинного обучения с использованием стандартных запросов.
Microsoft Windows
Программирование на Python в Microsoft Windows.
-
Python(x,y) — дистрибутив Python, ориентированный на научные приложения, основанный на Qt и Spyder.
-
pythonlibs — неофициальные двоичные файлы Windows для пакетов расширений Python.
-
PythonNet — интеграция Python с общеязыковой средой выполнения .NET (CLR).
-
PyWin32 — расширения Python для Windows.
-
WinPython — портативная среда разработки для Windows 7/8.
Разное
Полезные библиотеки или инструменты, которые не подходят ни к одной из вышеперечисленных категорий.
-
Blinker — быстрая система диспетчеризации сигналов/событий Python внутри процесса.
-
Boltons — набор утилит на чистом Python.
-
ItsDangerous — различные помощники для передачи доверенных данных в недоверенные среды.
-
Magenta — инструмент для создания музыки и искусства с помощью искусственного интеллекта.
-
Pluginbase — простая, но гибкая система плагинов для Python.
-
Tryton — универсальная бизнес-платформа.
Обработка естественного языка
Библиотеки для работы с человеческими языками.
- Общие
-
Gensim — тематическое моделирование для людей.
-
Langid.py — автономная система идентификации языков.
-
Nltk — ведущая платформа для создания программ на Python для работы с данными человеческого языка.
-
Pattern — модуль веб-майнинга.
-
Polyglot — конвейер для естественных языков, поддерживающий сотни языков.
-
Pytext — фреймворк моделирования естественного языка на основе PyTorch.
-
PyTorch-NLP — инструментарий, позволяющий быстро прототипировать глубокое обучение NLP для исследований.
-
Spacy — библиотека для промышленного анализа естественного языка в Python и Cython.
-
Stanza — официальная библиотека Python Стэнфордской группы по обработке естественного языка, поддерживающая более 60 языков.
- Китайский
-
FunNLP — коллекция инструментов и наборов данных для китайского NLP.
-
Jieba — самая популярная китайская библиотека сегментации текста. Pkuseg-python — набор инструментов для сегментации китайских слов в различных областях.
Snownlp — библиотека для обработки китайского текста.
Виртуализация сети
Инструменты и библиотеки для виртуальной сети и SDN (программно-определяемой сети).
-
Mininet — популярный сетевой эмулятор и API, написанный на Python.
-
Napalm — кросс-вендорный API для управления сетевыми устройствами.
-
Pox — приложения управления SDN на основе Python, такие как контроллеры OpenFlow SDN.
Лента новостей
Библиотеки для создания действий пользователей.
-
Django-activity-stream — генерация общих потоков активности с сайта.
-
Stream Framework — создание ленты новостей и систем уведомлений с использованием Cassandra и Redis.
ORM
Библиотеки, которые реализуют объектно-реляционное отображение или методы отображения данных.
Реляционные базы данных:
- Django Models — ORM Django.
- SQLAlchemy — Python SQL Toolkit и Object Relational Mapper.
- Dataset — хранение Python dicts в базе данных, работает с SQLite, MySQL и PostgreSQL.
- Orator — ORM Orator предоставляет простую, но красивую реализацию ActiveRecord.
- ORM — асинхронный ORM.
- Peewee — небольшой выразительный ORM.
- Pony — ORM, который предоставляет генераторно-ориентированный интерфейс к SQL.
- Pydal — чистый Python Database Abstraction Layer.
Базы данных NoSQL:
- Hot-redis — богатые типы данных Python для Redis.
- Mongoengine — Python Object-Document-Mapper для работы с MongoDB.
- PynamoDB — Pythonic интерфейс для Amazon DynamoDB.
- Redisco — библиотека Python для простых моделей и контейнеров, сохранённых в Redis.
Управление пакетами
Библиотеки для управления пакетами и зависимостями.
-
Pip — установщик пакетов для Python.
-
Pip-tools — набор инструментов, чтобы поддерживать свежие закреплённые зависимости Python.
-
PyPI — онлайн-хранилище программного обеспечения для языка Python.
-
Conda — кроссплатформенный менеджер бинарных пакетов Python, независимый от Python.
-
Poetry — управление зависимостями и упаковка Python стали проще.
Репозитории пакетов
Локальный сервер репозитория PyPI и прокси.
- Bandersnatch — инструмент зеркалирования PyPI, предоставленный Python Packaging Authority (PyPA).
- Devpi — сервер PyPI и инструмент упаковки/тестирования/выпуска.
- Localshop — локальный сервер PyPI (пользовательские пакеты и автоматическое зеркалирование pypi).
- Warehouse — следующее поколение репозитория пакетов Python (PyPI).
Тестирование на проникновение
Фреймворки и инструменты для тестирования на проникновение.
- Fsociety — фреймворк для тестирования на проникновение.
- Setoolkit — инструментарий для социальной инженерии.
- Sqlmap — автоматический инструмент внедрения SQL-кода и захвата базы данных.
Разрешения
Библиотеки, позволяющие или запрещающие пользователям доступ к данным или функциональности.
- Django-guardian — реализация разрешений для каждого объекта для Django 1.2+. Процессы
Библиотеки для запуска и взаимодействия с процессами ОС.
Рекомендательные системы
Библиотеки для создания рекомендательных систем.
-
annoy — приблизительные ближайшие соседи на C++/Python, оптимизированные для использования памяти.
-
fastFM — библиотека для факторных машин.
-
implicit — быстрая реализация на Python коллаборативной фильтрации для неявных наборов данных.
-
libffm — библиотека для полевых факторных машин (FFM).
-
lightfm — реализация на Python ряда популярных алгоритмов рекомендаций.
-
spotlight — глубокие модели рекомендаций с использованием PyTorch.
-
Surprise — scikit для построения и анализа рекомендательных систем.
-
tensorrec — фреймворк рекомендательной системы в TensorFlow.
Рефакторинг
Инструменты и библиотеки рефакторинга для Python
-
Bicycle Repair Man — Bicycle Repair Man, инструмент рефакторинга кода для Python.
-
Bowler — безопасный рефакторинг кода для современного Python.
-
Rope — библиотека рефакторинга Python.
RESTful API
Библиотеки для разработки RESTful API.
- Django
- Flask
-
eve — REST API фреймворк на основе Flask, MongoDB и благих намерений.
-
flask-api — браузерные веб-API для Flask.
-
flask-restful — быстрое создание REST API для Flask.
- Pyramid
-
cornice — REST фреймворк для Pyramid.
- Framework agnostic
-
falcon — высокопроизводительный фреймворк для создания облачных API и бэкендов веб-приложений.
-
fastapi — современный, быстрый веб-фреймворк для создания API на Python 3.6+ на основе стандартных подсказок типов Python.
-
hug — Python 3 фреймворк для чистого предоставления API.
-
sandman2 — автоматизированные REST API для существующих систем, управляемых базой данных.
-
sanic — веб-сервер и веб-фреймворк Python 3.6+, созданный для скорости.
Робототехника
Библиотеки для робототехники.
-
PythonRobotics — сборник различных алгоритмов робототехники с визуализацией.
-
rospy — библиотека для ROS (Robot Operating System).
RPC-серверы
RPC-совместимые серверы.
-
RPyC (Remote Python Call) — прозрачная и симметричная RPC библиотека для Python
-
zeroRPC — zerorpc — гибкая реализация RPC на основе ZeroMQ и MessagePack.
Наука
Библиотеки для научных вычислений. Также см. Python-for-Scientists.
-
astropy — общественная библиотека Python для астрономии. Библиотеки и программное обеспечение для индексации и выполнения поисковых запросов к данным
-
django-haystack — модульный поиск для Django.
-
elasticsearch-dsl-py — официальный высокоуровневый клиент Elasticsearch на Python.
-
Elasticsearch-py — официальный низкоуровневый клиент Elasticsearch на Python.
-
pysolr — лёгкая оболочка для Apache Solr на Python.
-
whoosh — быстрая библиотека поиска на чистом Python.
Библиотеки для сериализации сложных типов данных
- marshmallow — облегчённая библиотека для преобразования сложных объектов в простые типы данных Python и обратно.
- pysimdjson — привязки Python для simdjson.
- python-rapidjson — оболочка Python вокруг RapidJSON.
- ultrajson — быстрый декодер и кодировщик JSON, написанный на C с привязками Python.
Бессерверные фреймворки
- python-lambda — инструментарий для разработки и развёртывания кода Python в AWS Lambda.
- Zappa — инструмент для развёртывания приложений WSGI в AWS Lambda и API Gateway.
Оболочки на основе Python
- xonsh — кроссплатформенный язык оболочки и командная строка на базе Python, ориентированный на Unix. Tablib — модуль для табличных наборов данных в XLS, CSV, JSON, YAML.
Office
- docxtpl — редактирование документа docx с помощью шаблона jinja2.
- Openpyxl — библиотека для чтения и записи файлов Excel 2010 xlsx/xlsm/xltx/xltm.
- Pyexcel — предоставление единого API для чтения, обработки и записи файлов csv, ods, xls, xlsx и xlsm.
- Python-docx — чтение, запрос и изменение файлов Microsoft Word 2007/2008 docx.
- Python-pptx — библиотека Python для создания и обновления файлов PowerPoint (.pptx).
- Unoconv — преобразование между любыми форматами документов, поддерживаемыми LibreOffice/OpenOffice.
- XlsxWriter — модуль Python для создания файлов Excel .xlsx.
- xlwings — библиотека с лицензией BSD, которая упрощает вызов Python из Excel и наоборот.
- xlwt / xlrd — запись и чтение данных и информации о форматировании из файлов Excel.
PDF
- Pdfminer.six — форк оригинального PDFMiner, поддерживаемый сообществом.
- PyPDF2 — библиотека, способная разделять, объединять и преобразовывать страницы PDF.
- ReportLab — быстрое создание насыщенных документов PDF.
Markdown
- Mistune — самые быстрые и полнофункциональные парсеры Markdown на чистом Python.
- Python-Markdown — реализация Markdown Джона Грубера на Python.
YAML
- PyYAML — реализации YAML для Python.
CSV
- Csvkit — утилиты для преобразования в CSV и работы с ними.
Генератор статических сайтов
Генератор статических сайтов — это программное обеспечение, которое принимает некоторый текст + шаблоны в качестве входных данных и выдаёт HTML-файлы на выходе.
- Lektor — простая в использовании статическая CMS и движок блога.
- Mkdocs — генератор документации, дружественной к Markdown.
- Makesite — простой, лёгкий и не требующий магии генератор статических сайтов (< 130 строк).
- Nikola — генератор статического веб-сайта и блога.
- Pelican — генератор статических сайтов, который поддерживает Markdown и синтаксис reST.
Тегирование
Библиотеки для тегирования элементов.
- Django-taggit — простое тегирование для Django.
Очереди задач
Библиотеки для работы с очередями задач.
- Celery — асинхронная очередь задач/очередь заданий, основанная на распределённой передаче сообщений.
- Dramatiq — быстрая и надёжная библиотека обработки фоновых задач для Python 3.
- Huey — небольшая многопоточная очередь задач.
- Mrq — распределённая очередь рабочих задач в Python с использованием Redis & gevent.
- Rq — простые очереди заданий для Python.
Шаблонизатор
Библиотеки и инструменты для шаблонизации и лексирования.
- Genshi — набор инструментов для шаблонов Python для генерации веб-ориентированного вывода.
- Jinja2 — современный и удобный для дизайнеров язык шаблонов.
- Mako — сверхбыстрый и лёгкий шаблонизатор для платформы Python.
Тестирование
Библиотеки для тестирования кодовых баз и генерации тестовых данных.
Тестовые фреймворки. Гипотеза (hypothesis) — это продвинутая библиотека для тестирования на основе свойств в стиле Quickcheck.
- nose2 (nose-devs/nose2) — преемник nose, основанный на unittest2.
- pytest (docs.pytest.org/en/latest/) — зрелый полнофункциональный инструмент тестирования Python.
- Robot Framework (robotframework/robotframework) — универсальная среда автоматизации тестирования.
- unittest (docs.python.org/3/library/unittest.html) — фреймворк модульного тестирования из стандартной библиотеки Python.
Тестовые раннеры
- green (CleanCut/green) — чистый и красочный тестовый раннер.
- mamba (nestorsalceda.github.io/mamba/) — окончательный инструмент тестирования для Python, рождённый под знаменем BDD.
- tox (tox.readthedocs.io/en/latest/) — автоматически собирает и тестирует дистрибутивы в нескольких версиях Python.
GUI / веб-тестирование
- locust (locustio/locust) — инструмент масштабируемого нагрузочного тестирования пользователей, написанный на Python.
- PyAutoGUI (asweigart/pyautogui) — кроссплатформенный модуль автоматизации графического интерфейса пользователя для людей.
- Schemathesis (kiwicom/schemathesis) — инструмент автоматического тестирования на основе свойств веб-приложений, созданных с использованием спецификаций Open API / Swagger.
- Selenium (pypi.org/project/selenium/) — привязки Python для Selenium WebDriver.
- sixpack (seatgeek/sixpack) — языконезависимый фреймворк A/B-тестирования.
- splinter (cobrateam/splinter) — открытый инструмент для тестирования веб-приложений.
Mock
- doublex (pypi.org/project/doublex/) — мощный фреймворк тестовых дублей для Python.
- freezegun (spulec/freezegun) — путешествуйте во времени, имитируя модуль datetime.
- httmock (patrys/httmock) — библиотека имитации запросов для Python 2.6+ и 3.2+.
- httpretty (gabrielfalcao/HTTPretty) — инструмент имитации HTTP-запросов для Python.
- mock (docs.python.org/3/library/unittest.mock.html) — (Python standard library) библиотека имитации и исправления.
- mocket (mindflayer/python-mocket) — фреймворк сокетов с поддержкой gevent/asyncio/SSL.
- responses (getsentry/responses) — служебная библиотека для имитации библиотеки запросов Python.
- VCR.py (kevin1024/vcrpy) — записывайте и воспроизводите HTTP-взаимодействия в тестах.
Фабрики объектов
- factory_boy (FactoryBoy/factory_boy) — замена фикстурам для тестов в Python.
- mixer (klen/mixer) — ещё одна замена фикстур. Поддерживает Django, Flask, SQLAlchemy, Peewee и т. д.
- model_mommy (vandersonmota/model_mommy) — создание случайных фикстур для тестирования в Django.
Покрытие кода
- coverage (pypi.org/project/coverage/) — измерение покрытия кода.
Фальшивые данные
- fake2db (emirozer/fake2db) — генератор фальшивой базы данных.
- faker (joke2k/faker) — пакет Python, который генерирует фальшивые данные.
- mimesis (lk-geimfari/mimesis) — библиотека Python, которая помогает генерировать фальшивые данные.
- radar (pypi.org/project/radar/) — генерирует случайные даты и время.
Обработка текста
Библиотеки для анализа и обработки текстовых данных.
Общие
-
chardet (chardet/chardet) — детектор кодировки символов, совместимый с Python 2/3.
-
difflib (docs.python.org/3/library/difflib.html) — помощники для вычисления дельт.
-
ftfy (LuminosoInsight/python-ftfy) — делает текст Unicode менее сломанным и более согласованным автоматически.
-
fuzzywuzzy (seatgeek/fuzzywuzzy) — нечёткое сопоставление строк.
-
Levenshtein (ztane/python-Levenshtein/) — быстрое вычисление расстояния Левенштейна и сходства строк. Pangu.py — параноидальное текстовое форматирование.
-
Pyfiglet — реализация figlet на Python.
-
Pypinyin — конвертация китайских иероглифов (漢字) в пиньинь (拼音).
-
Textdistance — вычисление расстояния между последовательностями с использованием более 30 алгоритмов.
-
Unidecode — транслитерация текста из Unicode в ASCII.
Slugify
- Awesome-slugify — библиотека slugify на Python, которая может сохранять Unicode.
- Python-slugify — библиотека slugify на Python, которая переводит Unicode в ASCII.
- Unicode-slugify — slugifier, который генерирует юникод-слаги с Django в качестве зависимости.
Уникальные идентификаторы
- Hashids — реализация hashids на Python.
- Shortuuid — генераторная библиотека для создания кратких, однозначных и безопасных URL UUID.
Парсер
- Ply — реализация инструментов lex и yacc для парсинга на Python.
- Pygments — универсальный синтаксический маркер.
- Pyparsing — общая структура для генерации парсеров.
- Python-nameparser — парсинг человеческих имён на отдельные компоненты.
- Python-phonenumbers — парсинг, форматирование, хранение и проверка международных телефонных номеров.
- Python-user-agents — парсер пользовательских агентов браузера.
- Sqlparse — непроверяющий SQL-парсер.
Сторонние API
Библиотеки для доступа к сторонним сервисам API. Также см. Список оболочек и библиотек Python API.
- Apache-libcloud — одна библиотека Python для всех облаков.
- Boto3 — интерфейс Python для Amazon Web Services.
- Django-wordpress — модели и представления WordPress для Django.
- Facebook-sdk — Python SDK платформы Facebook.
- Google-api-python-client — клиентская библиотека Google APIs для Python.
- Gspread — API Google Таблиц Python.
- Twython — оболочка Python для Twitter API.
Манипуляции с URL
Библиотеки для анализа URL.
- Furl — небольшая библиотека Python, упрощающая анализ и манипуляцию URL.
- Purl — простой неизменяемый класс URL с понятным API для опроса и манипуляции.
- Pyshorteners — чистая библиотека сокращения URL на Python.
- Webargs — дружественная библиотека для анализа аргументов HTTP-запроса со встроенной поддержкой популярных веб-фреймворков.
Видео
Библиотеки для работы с видео и GIF.
- Moviepy — модуль для редактирования фильмов на основе сценариев с множеством форматов, включая анимированные GIF.
- Scikit-video — процедуры обработки видео для SciPy.
- Vidgear — самая мощная многопоточная среда обработки видео.
Управление веб-активами
Инструменты для управления, сжатия и минимизации веб-ресурсов.
- Django-compressor — сжимает связанные и встроенные JavaScript или CSS в один кэшированный файл.
- Django-pipeline — библиотека упаковки активов. В интернете есть много сайтов с информацией на эту тему. Посмотрите, что нашлось в поиске Ресурсы и новые библиотеки Python.
Информационные бюллетени
Подкасты
Вклад в проект
Ваши вклады всегда приветствуются! Пожалуйста, сначала ознакомьтесь с руководством по внесению вклада.
Если у вас есть какие-либо вопросы об этом субъективном списке, не стесняйтесь обращаться ко мне @VintaChen в Twitter или открыть вопрос на GitHub.
Комментарии ( 0 )