We're back after a server migration that caused effbot.org to fall over a bit harder than expected. Expect some glitches.

How do I interface to C++ objects from Python?

Depending on your requirements, there are many approaches. To do this manually, begin by reading Extending and Embedding the Python Interpreter. Realize that for the Python run-time system, there isn’t a whole lot of difference between C and C++ — so the strategy of building a new Python type around a C structure (pointer) type will also work for C++ objects.

If you don’t want to work at the Python C API level, you can use tools like Pyrex and SWIG. The former lets you write Python-like code for the interface, the latter uses special interface specifications to generate bindings for Python as well as several other languages.

There are also a number of more specialized tools available for C++, including SIP, CXX, Boost, and Weave.

CATEGORY: extending