Skip to content
scoder edited this page Jan 18, 2022 · 10 revisions

Several people have created scripts to parse header files and automatically produce Cython bindings.


autowrap automatically generates python extension modules for wrapping C++ libraries based on annotated (commented) cython pxd files. Current features include wrapping of template classes, enums, free functions and static methods as well as converters from Python data types to (many) STL containers and back. Finally, also manually written Cython code can be incorporated for wrapping code.


Automatically generate pxd from C headers. It uses pycparser to parse the definitions, so the only requirement beyond python dependencies is a C preprocessor on PATH. (A friendly fork of python-autopxd, supporting recent Python versions) (original version)

Tools that appear unmaintained:

cwrap (original version; requires gcc_xml) (fork which includes tests, documentation and requires libclang)


XDress is an automatic wrapper generator for C/C++ written in pure Python. Currently, xdress may generate Python bindings (via Cython) for C++ classes & functions and in-memory wrappers for C++ standard library containers (sets, vectors, maps). In the future, other tools and bindings will be supported.


Note: This tool isn't maintained anymore.

This is a tool called cython-codegen or written by David Cournapeau - download it with git (a version control tool, apt-get install git):

git clone

It requires gcc_xml and codegenlib from ctypeslib (apt get install python-ctypeslib)

Related information:


Automatically generate bindings for fortran files:


Script by Evan Buswell


Philip Herron's 2012 GSoC project, using GCC plugins to generate pxd files. Code at

Requires a recent version of gcc and gcc-python-plugin.

Clone this wiki locally