Сторонние библиотеки 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].

Источники[править]

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