h2xml(1) convert header files to XML intermediates


h2xml includefile ... [options] -o outputxmlfile
xml2py xmlfile ... [options] -o outputpyfile


ctypeslib is a Python code generator capable of converting C header files into xml files (using gccxml), and then converting the xmlfiles into Python modules which define a ctypes interface to the corresponding C library.

Ctypeslib is not ctypes. Ctypes is included in Python 2.5+ and as an add-on for lower versions, while ctypeslib is a lesser known add-on written by the ctypes author. If you use ctypes a lot and are tired of setting argtypes and restype of the called functions, you should look into ctypeslib. Ctypeslib can also set up data types and structures from C header files automatically.

h2xml and xml2py are the user interface scripts to ctypeslib. h2xml converts C header files into xml intermediates (using gccxml) and xml2py converts these intermediates to Python files. At the minimum, you can get automatic construction of the C types (structures, etc) in ctypes definitions. With extra options, macro definitions can be expanded and the output Python file can be automatically linked (using ctypes) to the corresponding C library.

The briefest example is:

h2xml header.h -o out_c.xml
xml2py out_c.xml -o out_c.py

To obtain preprocessor symbols, you must use the -c flag to h2xml. To automatically link to C libraries via ctypes, you muss pass the relevant libraries to xml2py with -l library.so.


h2xml options:

-h, --help
show brief help message
-q, --quiet

macros to define
macros to undefine
additional include directories
XML output filename
-c, --cpp-symbols
try to find #define symbols - this may give compiler errors, so it's off by default.
don't delete the temporary files created (useful for finding problems)

xml2py options:

-h, --help
show this help message and exit
include source file location in comments
include docstrings containing C prototype and source file location
kind of type descriptions to include: d = #defines, e = enumerations, f = functions, s = structures, t = typedefs
libraries to search for exported functions
output filename (if not specified, standard output will be used)
regular expression for symbols to include (if neither symbols nor expressions are specified,everything will be included)
symbol to include (if neither symbols nor expressions are specified,everything will be included)
verbose output
add all standard windows dlls to the searched dlls list
-m module
Python module(s) containing symbols which will be imported instead of generated
dlls to be loaded before all others (to resolve symbols)


Please see /usr/share/doc/python-ctypeslib/examples.Debian for examples and explanation.


ctypeslib was written by Thomas Heller <[email protected]>.

This manual page was written by Richard Darst <[email protected]>, for the Debian project (and may be used by others).