SIP (software)


title: "SIP (software)" type: doc version: 1 created: 2026-02-28 author: "Wikipedia contributors" status: active scope: public tags: ["programming-tools", "free-computer-programming-tools", "scripting-languages"] topic_path: "technology/programming-languages" source: "https://en.wikipedia.org/wiki/SIP_(software)" license: "CC BY-SA 4.0" wikipedia_page_id: 0 wikipedia_revision_id: 0

::data[format=table title="Infobox software"]

FieldValue
nameSIP
authorPhil Thompson
programming languageC, C++
licenseGPL and other
website
::

| name = SIP | author = Phil Thompson | programming language = C, C++ | license = GPL and other | website =

SIP is an open source software tool used to connect computer programs or libraries written in C or C++ with the scripting language Python. It is an alternative to SWIG.

SIP was originally developed in 1998 for PyQt — the Python bindings for the Qt GUI toolkit — but is suitable for generating bindings for any C or C++ library.

Concept

SIP takes a set of specification (.sip) files describing the API and generates the required C++ code. This is then compiled to produce the Python extension modules. A .sip file is essentially the class header file with some things removed (because SIP does not include a full C++ parser) and some things added (because C++ does not always provide enough information about how the API works).

In terms of how the generated code works then I don't think it's very different from how any other bindings generator works. Python has a very good C API for writing extension modules - it's one of the reasons why so many 3rd party tools have Python bindings. For every C++ class, the SIP generated code creates a corresponding Python class implemented in C.|author=Phil Thompson|title=developer and maintainer}}

Notable applications that use SIP

  • PyQt, a python port of the application framework and widget toolkit Qt
  • QGIS, a free and open-source cross-platform desktop geographic information system (GIS)
  • QtiPlot, a computer program to analyze and visualize scientific data
  • calibre (software), a free and open-source cross-platform e-book manager
  • Veusz, a free and open-source cross-platform program to visualize scientific data

References

References

  1. "Introduction — SIP". riverbankcomputing.com.
  2. (2006). "Phil Thompson Talks About PyQt". dot.kde.org.

::callout[type=info title="Wikipedia Source"] This article was imported from Wikipedia and is available under the Creative Commons Attribution-ShareAlike 4.0 License. Content has been adapted to SurfDoc format. Original contributors can be found on the article history page. ::

programming-toolsfree-computer-programming-toolsscripting-languages