Курсовая работа Калашников. Задача по следующим критериям Сравнить получившиеся коды программ
Скачать 131.17 Kb.
|
7. Библиотеки7.1. Стандартная библиотекаPython поставляется «с батарейками в комплекте». Богатая стандартная библиотека является одной из привлекательных сторон Питона. Здесь имеются средства для работы со многими сетевыми протоколами и форматами Интернета, например, модули для написания HTTP-серверов и клиентов, для разбора и создания почтовых сообщений, для работы с XML и т. п. Набор модулей для работы с операционной системой позволяет писать кросс-платформенные приложения. Существуют модули для работы с регулярными выражениями, текстовыми кодировками, мультимедийными форматами, криптографическими протоколами, архивами, сериализации данных, поддержка юнит-тестирования и др. 7.2. Модули расширения и программные интерфейсыПомимо стандартной библиотеки существует множество библиотек, предоставляющих интерфейс ко всем системным вызовам на разных платформах; в частности, на платформе Win32 поддерживаются все вызовы Win32 API, а также COM в объёме не меньшем, чем у Visual Basic или Delphi. Количество прикладных библиотек для Python в самых разных областях без преувеличения огромно (веб, базы данных, обработка изображений, обработка текста, численные методы, приложения операционной системы и т. д.). Для Python принята спецификация программного интерфейса к базам данным DB-API 2 и разработаны соответствующие этой спецификации пакеты для доступа к различным СУБД: PostgreSQL, Oracle, Sybase, Firebird (Interbase), Informix, Microsoft SQL Server, MySQL и sqlite. На платформе Microsoft Windows доступ к БД возможен через ADO (ADOdb). Коммерческий пакет mxODBC для доступа к СУБД через ODBC для платформ Windows и UNIX разработан eGenix[21]. Для Питона написано много ORM (SQLObject, SQLAlchemy, Dejavu, Django), выполнены программные каркасы для разработки веб-приложений (Django, Pylons). Библиотека NumPy для работы с многомерными массивами позволяет достичь производительности научных расчётов, сравнимой со специализированными пакетами. SciPy использует NumPy и предоставляет доступ к обширному спектру математических алгоритмов (матричная алгебра — BLAS, level 1-3 и LAPACK; БПФ). Numarray[22] специально разработан для операций с большими объёмами научных данных. На стадии разработки[23] находится WSGI — интерфейс шлюза с веб-сервером (Python Web Server Gateway Interface). Python предоставляет простой и удобный программный интерфейс C API для написания собственных модулей на языках Си и Си++. Такой инструмент как SWIG позволяет почти автоматически получать привязки для использования C/C++ библиотек в коде на Питоне. Возможности этого и других инструментов варьируются от автоматической генерации (C/C++/Fortran)-Python интерфейсов по специальным файлам (SWIG, pyste[24], SIP[25], pyfort[26]), до предоставления более удобных API (boost::python[27], CXX[28] и др.). Инструмент стандартной библиотеки ctypes позволяет программам Питона напрямую обращаться к динамическим библиотекам/DLL, написанным на C. Существуют модули, позволяющие встраивать код на С/C++ прямо в исходные файлы Python, создавая расширения «на лету» (pyinline[29], weave[30]). Другой подход состоит во встраивании интерпретатора Python в приложения. Python легко встраивается в программы на Java, C/C++, Ocaml. Взаимодействие Python-приложений с другими системами возможно также с помощью CORBA, XML-RPC, SOAP, COM. С помощью Pyrex[31] возможна компиляция Python-подобного языка (добавлена возможность типизации) в эквивалентный Си-код и связывание с внешними модулями. Экспериментальный проект shed skin[32][33] предполагает создание компилятора для трансформации неявно типизированных Python программ в оптимизированный С++ код. Начиная с версии 0.22 shed skin позволяет компилировать отдельные функции в модули расширений. Полная компиляция (по состоянию на 1 июля 2007 года) далека от завершения. Python и подавляющее большинство библиотек к нему бесплатны и поставляются в исходных кодах. Более того, в отличие от многих открытых систем, лицензия никак не ограничивает использование Python в коммерческих разработках и не налагает никаких обязательств кроме указания авторских прав. 7.3. Графические библиотекиС Питоном поставляется библиотека tkinter на основе Tcl/Tk для создания кроссплатформенных программ с графическим интерфейсом. Существуют расширения, позволяющие использовать все основные GUI библиотеки — wxPython[34], основанное на библиотеке wxWidgets, PyGTK для Gtk, PyQt и PySide для Qt и другие. Некоторые из них также предоставляют широкие возможности по работе с базами данных, графикой и сетями, используя все возможности библиотеки, на которой основаны. Для создания игр и приложений, требующих нестандартного интерфейса, можно использовать библиотеку Pygame. Она также предоставляет обширные средства работы с мультимедиа: с её помощью можно управлять звуком и изображениями, воспроизводить видео. Предоставляемое pygame аппаратное ускорение графики OpenGL имеет более высокоуровневый интерфейс по сравнению с PyOpenGL[35], копирующей семантику С-библиотеки для OpenGL. Есть также PyOgre[36], обеспечивающая привязку к Ogre — высокоуровневой объектно-ориентированной библиотеке 3D-графики. Кроме того, существует библиотека pythonOCC[37], обеспечивающая привязку к среде 3D-моделирования и симуляции OpenCascade[38]. Для работы с растровой графикой используется библиотека Python Imaging Library. |