---
name: "sip5"
section: "1"
platform: "linux"
package: "sip5-tools"
version: "5.5.0+dfsg-3"
release: "Debian 11 (Bullseye)"
platforms: ["linux"]
url: "https://new.carta.tech/sip5"
---

# sip5(1)

generate Python extension modules for C/C++ libraries

## NAME

sip5 - generate Python extension modules for C/C++ libraries

## SYNOPSIS

```
sip5 [options] [specification]
```

**specification** is the name of the specification file for the module.  If it is omitted then **stdin** is used.

Command line options can also be placed in a file and passed on the command line using the **@** prefix.

## DESCRIPTION

**sip5** is a drop-in replacement for the **sip** code generator included with SIP v4.

## OPTIONS

- **-h**

  Display a help message.

- **-V**

  Display the SIP version number.

- **-a FILE**

  The name of the QScintilla API file to generate.  This file contains a description of the module API in a form that the QScintilla editor component can use for auto-completion and call tips.  (The file may also be used by the SciTE editor but must be sorted first.)  By default the file is not generated.

- **--abi-version VERSION**

  The version of the ABI implemented by the **sip** module is **VERSION**. By the default the latest version is used.

- **-B TAG**

  The tag is added to the list of *backstops*.  The option may be given more than once if multiple timelines have been defined.

- **-c DIR**

  The name of the directory (which must exist) into which all of the generated C or C++ code is placed.  By default no code is generated.

- **-D**

  Code is generated for a debug build of Python.

- **-e**

  Support for C++ exceptions is enabled.  This causes all calls to C++ code to be enclosed in **try**/**catch** blocks and C++ exceptions to be converted to Python exceptions.  By default exception support is disabled.

- **-f**

  Warnings are handled as if they were errors and the program terminates.

- **-g**

  The Python GIL is released before making any calls to the C/C++ library being wrapped and reacquired afterwards.  See ref-gil and the **ReleaseGIL** and **HoldGIL** annotations.

- **-I DIR**

  The directory is added to the list of directories searched when looking for a specification file given in an **%Include** or **%Import** directive.  Directory separators must always be **/**. This option may be given any number of times.

- **-j FILES**

  The generated code is split into the given number of files.  This makes it easier to use the parallel build facility of most modern implementations of **make**.  By default 1 file is generated for each C structure or C++ class.

- **-n NAME**

  The fully qualified name of the **sip** module (i.e. including the package name).

- **-o**

  Docstrings will be automatically generated that describe the signature of all functions, methods and constructors.

- **-P**

  By default SIP generates code to provide access to protected C++ functions from Python.  On some platforms (notably Linux, but not Windows) this code can be avoided if the **protected** keyword is redefined as **public** during compilation.  This can result in a significant reduction in the size of a generated Python module.  This option disables the generation of the extra code.

- **-r**

  Debugging statements that trace the execution of the bindings are automatically generated.  By default the statements are not generated.

- **-s SUFFIX**

  The suffix to use for generated C or C++ source files.  By default **.c** is used for C and **.cpp** for C++.

- **-t TAG**

  The SIP version tag (declared using a **%Timeline** directive) or the SIP platform tag (declared using the **%Platforms** directive) to generate code for.  This option may be given any number of times so long as the tags do not conflict.

- **-w**

  The display of warning messages is enabled.  By default warning messages are disabled.

- **-x FEATURE**

  The feature (declared using the **%Feature** directive) is disabled.

- **-X ID:FILE**

  The extract (defined with the **%Extract** directive) with the identifier **ID** is written to the file **FILE**.

- **-y FILE**

  The name of the Python type hints stub file to generate.  This file contains a description of the module API that is compliant with PEP 484. By default the file is not generated.
