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 at 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 pathlib
import setuptools
# Get the current directory
PROJECT_PATH = pathlib.Path(__file__).parent
sum_of_squares = setuptools.Extension('sum_of_squares', sources=[
# Get the relative path to...