Jump to content

SIP (программное обеспечение)

ГЛОТОК
Оригинальный автор(ы) Фил Томпсон
Написано в С , С++
Лицензия GPL и другие
Веб-сайт береговые вычисления .co .uk /программное обеспечение /глоток /введение

SIP — это программный инструмент с открытым исходным кодом, используемый для соединения компьютерных программ или библиотек, написанных на C или C++, с языком сценариев Python . Это альтернатива SWIG .

SIP был первоначально разработан в 1998 году для PyQt — привязок Python для набора инструментов Qt GUI — но подходит для создания привязок для любой библиотеки C или C++. [1]

Концепция

[ редактировать ]

SIP принимает набор файлов спецификации (.sip), описывающих API , и генерирует необходимый код C++. Затем он компилируется для создания модулей расширения Python. Файл .sip по сути представляет собой файл заголовка класса, из которого некоторые элементы удалены (поскольку SIP не включает в себя полноценный анализатор C++) и некоторые добавлены (поскольку C++ не всегда предоставляет достаточно информации о том, как работает API).

Для PyQt v4 я использую внутренний инструмент (написанный, конечно, с использованием PyQt) под названием Metasip. Это своего рода IDE для SIP. Он использует GCC -XML для анализа последних файлов заголовков и сохраняет соответствующие данные в формате XML в проекте Metasip. Затем Metasip выполняет эквивалент сравнения с предыдущей версией API и отмечает любые изменения, на которые необходимо обратить внимание. Эти изменения затем вносятся через графический интерфейс и отмечаются галочкой в ​​списке TODO. Создание файлов .sip выполняется одним нажатием кнопки. В моем репозитории Subversion PyQt v4 представляет собой всего лишь XML-файл размером 20 МБ. Обновление PyQt v4 для минорной версии Qt v4 занимает около получаса. Что касается того, как работает сгенерированный код, я не думаю, что он сильно отличается от того, как работает любой другой генератор привязок. Python имеет очень хороший C API для написания модулей расширения — это одна из причин, почему так много сторонних инструментов имеют привязки Python. Для каждого класса C++ код, сгенерированный SIP, создает соответствующий класс Python, реализованный на C. [2]

Фил Томпсон, разработчик и сопровождающий

Известные приложения, использующие SIP

[ редактировать ]
  • PyQt , порт платформы приложений и набора виджетов Qt на Python.
  • QGIS — бесплатная кроссплатформенная настольная географическая информационная система (ГИС) с открытым исходным кодом.
  • QtiPlot — компьютерная программа для анализа и визуализации научных данных.
  • калибр (программное обеспечение) — бесплатный кроссплатформенный менеджер электронных книг с открытым исходным кодом.
  • Veusz — бесплатная кроссплатформенная программа с открытым исходным кодом для визуализации научных данных.
  1. ^ «Введение — СИП» . RiverbankComputing.com . Проверено 14 августа 2010 г.
  2. ^ «Фил Томпсон рассказывает о PyQt» . dot.kde.org. 2006 год . Проверено 13 августа 2010 г.
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 58d8a82112c1deff7e8a4106b6c49dd8__1635886380
URL1:https://arc.ask3.ru/arc/aa/58/d8/58d8a82112c1deff7e8a4106b6c49dd8.html
Заголовок, (Title) документа по адресу, URL1:
SIP (software) - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)