C/C++ extensions

The previous chapter already covered this somewhat, as it's a requirement to compile the C/C++ files. But that chapter didn't explain what and how the setup.py was doing in this case.

For convenience, we will repeat the setup.py file:

import setuptools

spam = setuptools.Extension('spam', sources=['spam.c'])

setuptools.setup(
    name='Spam',
    version='1.0',
    ext_modules=[spam],
)

Before you start with these extensions, you should learn the following commands:

  • build: This is actually not a C/C++ specific build function (try build_clib for that) but a combined build function to build everything within setup.py.
  • clean: This cleans the results from the build command. This is generally not needed but sometimes the detection of files that need ...

Get Mastering Python now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.