Сторонние библиотеки Python
Для Python было разработано огромное количество библиотек[1]: Искусственный интеллектДля Python было разработано много библиотек ИИ, такие как TensorFlow, Scikit-learn, Keras. Платформенно зависимые библиотекиПомимо стандартной библиотеки существует множество библиотек, предоставляющих интерфейс ко всем системным вызовам на разных платформах; в частности, на платформе Win32 поддерживаются все вызовы Win32 API, а также COM в объёме не меньшем, чем у Visual Basic или Delphi. Количество прикладных библиотек для Python в самых разных областях без преувеличения огромно (веб, базы данных, обработка изображений, обработка текста, численные методы, приложения операционной системы и т. д.)[2]. Библиотеки для работы с базами данныхДля Python принята спецификация программного интерфейса к базам данных DB-API 2[3] и разработаны соответствующие этой спецификации пакеты для доступа к различным СУБД: Oracle, MySQL, PostgreSQL, Sybase, Firebird (Interbase), Informix, Microsoft SQL Server и SQLite — sqlite3[4]. Математические библиотекиБиблиотека NumPy для работы с многомерными массивами позволяет иногда достичь производительности научных расчётов, сравнимой со специализированными пакетами. SciPy использует NumPy и предоставляет доступ к обширному спектру математических алгоритмов (матричная алгебра — BLAS уровней 1—3, LAPACK, БПФ…). Numarray[5] специально разработан для операций с большими объёмами научных данных. Pandas также используется для анализа и работы с данными. Веб-библиотекиWSGI[6] — интерфейс шлюза с веб-сервером (Python Web Server Gateway Interface). Для Python написано много ORM (SQLAlchemy, Dejavu, Django), выполнены программные каркасы для разработки веб-приложений (Django, Pyramid, Flask, FastAPI). Привязки к функциям Python других языковPython предоставляет простой и удобный программный интерфейс C API для написания собственных модулей на языках Си и C++ и других. Такой инструмент как SWIG позволяет почти автоматически получать привязки для использования C/C++ библиотек в коде на Python. Возможности этого и других инструментов варьируются от автоматической генерации (C/C++/Fortran)-Python интерфейсов по специальным файлам (SWIG, pyste[7], SIP[8], pyfort[9]), до предоставления более удобных API (boost::python[10][11], CXX[12], Pyhrol[13] и др.). Инструмент стандартной библиотеки ctypes позволяет программам Python напрямую обращаться к динамическим библиотекам/DLL, если в них объявлены соответствующие экспортированные функции. Существуют модули, позволяющие встраивать код на С/C++ прямо в исходные файлы Python, создавая расширения «на лету» (pyinline[14], weave[15]). Другой подход состоит во встраивании интерпретатора Python в приложения. Python легко встраивается в программы на Java, C/C++, OCaml. Взаимодействие Python-приложений с другими системами возможно также с помощью CORBA, XML-RPC, SOAP, COM. Трансляция кода Python в другие языкиС помощью проекта Cython возможна трансляция программ, написанных на смешанных языках Python и C. Nuitka[16], в код на языке Си с последующей компиляцией в машинный код. Cython и Nuitka используется для ускорения скорости написанных Python-библиотек. Библиотеки пользовательского графического интерфейсаС Python поставляется библиотека tkinter на основе Tcl/Tk для создания кроссплатформенных программ с графическим интерфейсом[17]. Существуют расширения, позволяющие использовать все основные библиотеки графических интерфейсов — wxPython[18], основанное на библиотеке wxWidgets, PyGObject для GTK[19], PyQt и PySide для Qt и другие. Некоторые из них также предоставляют широкие возможности по работе с базами данных, графикой и сетями, используя все возможности библиотеки, на которой основаны. Библиотеки для создания игрДля создания игр и приложений, требующих нестандартного интерфейса, можно использовать библиотеку Pygame. Она также предоставляет обширные средства работы с мультимедиа: с её помощью можно управлять звуком и изображениями, воспроизводить видео. Предоставляемое pygame аппаратное ускорение графики OpenGL имеет более высокоуровневый интерфейс по сравнению с PyOpenGL[20], копирующей семантику С-библиотеки для OpenGL. Есть также PyOgre[21], обеспечивающая привязку к Ogre — высокоуровневой объектно-ориентированной библиотеке 3D-графики. Кроме того, существует библиотека pythonOCC[22], обеспечивающая привязку к среде 3D-моделирования и симуляции OpenCascade[23]. Графические библиотекиДля работы с растровой графикой используется библиотека Pillow[24]. Для работы с векторной графикой используется PyCairo[25]. Контроль типов и перегрузка функцийСуществуют модули, позволяющие контролировать типы параметров функций на этапе исполнения, например, typecheck[26] или method signature checking decorators[27]. Необязательная декларация типов для параметров функции добавлена в Python 3, интерпретатор при этом не проверяет типы, а только добавляет соответствующую информацию к метаданным функции для последующего использования этой информации модулями расширений[28]. Перегрузка функций реализована различными сторонними библиотеками, в том числе PEAK[29][30]. Планы, которые не были приняты, по поддержке перегрузки в Python 3[31] были частично реализованы в библиотеке overloading-lib[32]. Примечания
|