Not Logged In

PyBindGen 0.17.0

About

PyBindGen is (surprise!) a python bindings generator. The main features are:

Generates clean C or C++ code, nearly as readable as code written
manually by a developer;

Generated code is self contained and does not require any external
libraries or macros; after generating the python module only python
header files are required, nothing else;

Does not require Boost.Python (no C++ template magic, also works in C);

The interface for code generation is a simple Python API, not some
obscure interface definition language. Additionally PyBindGen can
parse header files with gccxml, if gccxml and pygccxml are
installed in the system (note: pygccxml has not been ported to Python 3 yet);

You can install PyBindGen using either the setup.py or WAF. Note: to
be able to run all tests, which involve code generation, and
subsequent compilation, you need to use WAF.

Installation using setup.py:

python setup.py install

Installation using WAF

PyBindGen uses WAF as main build system.
However, WAF does not have to be previously installed, as it is
shipped with PyBindGen in a single waf script.

To install PyBindGen, issue the following commands (win32 users should omit the ./ prefix in commands):

./waf configure
- optionally you may add the option –prefix /foo/bar. To select a non-defaul python version, use the PYTHON environment variable, e.g.:

PYTHON=/usr/bin/python2.4 ./waf configure

./waf

possible options: -jN for parallel build, -p for progress bar

./waf check

optional step, runs the unit tests

./waf –examples

optional step, compiles the examples

./waf install

may require sudo

Windows specific notes

WAF concurrency bugs

WAF automatically detects the number of cores and tries to activate
multiple build threads accordingly. However, this concurrency support
appears to be buggy on Windows, therefore you should disable it with the
-j1 option, if you have multiple CPUs:

waf check -j1

Compiler selection

Note that if you are compiling on win32, WAF will look for MSVC
(MicroSoft Visual C) by default and give up on finding a C/C++
compiler if not found. If you do not have MSVC installed but instead
have MinGW or CygWin GCC, you have to tell WAF to look for GCC in the
configure stage:

waf configure –check-c-compiler=gcc –check-cxx-compiler=g++

Installation

On win32, waf install installs to a Temp folder by default. To have
it install for a certain Python version, use the –prefix option to
waf configure. For instance:

waf configure –prefix C:Python26
waf install

Installation failsafe

If by any chance you have trouble with WAF and are just looking to
install PyBindGen, you should know that PyBindGen is entirely
self-contained in the pybindgen directory. You can simply
recursively copy the entire pybindgen folder into Python’s
site-packages directory, and that’s it! PyBindGen is a pure Python
package and does not actually require a C/C++ compiler; a C++ compiler is only
used for code generation unit tests and compiling the example modules, and it is not needed to generate code.