Сторонние библиотеки 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].
Источники[править]
- ↑ PyPI · Индекс пакета Python рус.. PyPI. Архивировано из первоисточника 3 июня 2017. Проверено 9 октября 2023.
- ↑ pywin32: Python for Window Extensions.
- ↑ PEP 249 – Python Database API Specification v2.0 | peps.python.org. peps.python.org. Архивировано из первоисточника 12 октября 2023. Проверено 9 октября 2023.
- ↑ sqlite3 — DB-API 2.0 interface for SQLite databases. Python documentation. Архивировано из первоисточника 6 октября 2023. Проверено 9 октября 2023.
- ↑ numarray Home Page. Архивировано из первоисточника 9 июня 2021. Проверено 5 февраля 2007.
- ↑ PEP 3333 – Python Web Server Gateway Interface v1.0.1 | peps.python.org. peps.python.org. Архивировано из первоисточника 5 октября 2023. Проверено 9 октября 2023.
- ↑ Pyste Documentation. Архивировано из первоисточника 3 февраля 2007.[недоступная ссылка] Проверено 3 февраля 2007.
- ↑ Архивированная копия. Архивировано из первоисточника 8 февраля 2007.[недоступная ссылка] Проверено 3 февраля 2007.
- ↑ Архивированная копия. Архивировано из первоисточника 8 февраля 2007. Проверено 3 февраля 2007.
- ↑ Boost.Python. Архивировано из первоисточника 3 февраля 2007. Проверено 3 февраля 2007.
- ↑ http://www.drdobbs.com/building-hybrid-systems-with-boostpython/184401666 Архивная копия от 13 октября 2015 на Wayback Machine Building Hybrid Systems with Boost.Python
- ↑ PyCXX: Write Python Extensions in C. Архивировано из первоисточника 3 февраля 2007. Проверено 3 февраля 2007.
- ↑ Мост между C++ и Python. Архивировано из первоисточника 18 декабря 2014. Проверено 15 мая 2014.
- ↑ PyInline: Mix Other Languages directly Inline with your Python. Архивировано из первоисточника 15 января 2007. Проверено 3 февраля 2007.
- ↑ Weave. Архивировано из первоисточника 1 марта 2007.[недоступная ссылка] Проверено 3 февраля 2007.
- ↑ Nuitka the Python Compiler — Nuitka the Python Compiler documentation. nuitka.net. Архивировано из первоисточника 3 сентября 2022. Проверено 9 октября 2023.
- ↑ tkinter — Python interface to Tcl/Tk. Python documentation. Архивировано из первоисточника 18 октября 2012. Проверено 9 октября 2023.
- ↑ wxPython. Архивировано из первоисточника 9 июня 2021. Проверено 30 сентября 2008.
- ↑ The GTK Team The GTK Project - A free and open-source cross-platform widget toolkit англ.. The GTK Team (2015-06-05). Архивировано из первоисточника 27 ноября 2020. Проверено 25 января 2021.
- ↑ PyOpenGL — The Python OpenGL Binding. Архивировано из первоисточника 15 июня 2011. Проверено 9 февраля 2007.
- ↑ PyOgre : Ogre Wiki. Архивировано из первоисточника 6 февраля 2007.[недоступная ссылка] Проверено 9 февраля 2007.
- ↑ pythonOCC, 3D CAD/CAE/PLM development framework for the Python programming language. Архивировано из первоисточника 8 августа 2011. Проверено 28 марта 2009.
- ↑ Open CASCADE Technology, 3D modeling & numerical simulation. Архивировано из первоисточника 18 марта 2009. Проверено 28 марта 2009.
- ↑ Pillow: Python Imaging Library (Fork).
- ↑ pycairo: Python interface for cairo.
- ↑ Typechecking module for Python. Архивировано из первоисточника 4 февраля 2007.[недоступная ссылка] Проверено 10 февраля 2007.
- ↑ Method signature checking decorators " Python recipes " ActiveState Code. Архивировано из первоисточника 13 февраля 2008. Проверено 16 февраля 2008.
- ↑ PEP-3107. Архивировано из первоисточника 8 мая 2007. Проверено 16 февраля 2007.
- ↑ FrontPage — The PEAK Developers' Center. Архивировано из первоисточника 12 мая 2008. Проверено 19 марта 2008.
- ↑ PEAK-Rules. Архивировано из первоисточника 23 июля 2008. Проверено 19 марта 2008.
- ↑ PEP-3124. Архивировано из первоисточника 3 июля 2007. Проверено 25 мая 2007.
- ↑ overloading-lib. Архивировано из первоисточника 17 сентября 2013., Библиотека динамической перегрузки функций и методов основанной на типах аргументов для языка python