Native C/C++ extensions
The libraries that we have used so far only showed us how to access a C/C++ library within our Python code. Now we are going to look at the other side of the story—how C/C++ functions/modules within Python are actually written and how modules such as cPickle
and cProfile
are created.
A basic example
Before we can actually start with writing and using native C/C++ extensions, we have a few prerequisites. First of all, we need the compiler and Python headers; the instructions in the beginning of this chapter should have taken care of this for us. After that, we need to tell Python what to compile. The setuptools
package mostly takes care of this, but we do need to create a setup.py
file:
import setuptools spam = setuptools.Extension('spam', sources=['spam.c']) setuptools.setup( name='Spam', version='1.0', ext_modules=[spam], )
This tells Python that we have an Extension
object named Spam
that will be based on...