Extending & Embedding Python Using C

Errata: None

Program Listings


Buy from: Amazon

Writing a C extension for Python is good for fun and profit!
The fun part is that adding Python to C gives you so much more power and a deeper understanding of how Python works. The internals of Python are worth knowing about because they suggest new approaches to other problems. As well as being interesting, it is also a valuable skill.

Extending & Embedding Python Using C tells you everything you need to know about the C API, which is what you use to create an extension. It is essentially the Python runtime and so exploring it tells you a lot about Python. You don’t need to be an expert Python programmer to create an extension, but it helps. As you are going to be writing mostly C code, programming in C is a more important skill for this task. While you don’t have to be a C expert, you do need to be reasonably competent and C aficionados will enjoy finding out about some of the clever techniques in use in the C API.

Extending Python is a way of bringing any C-based application or library to a much wider audience. Converting Python functions into C functions is also a way of speeding things up. Moreover, you can provide access to hardware or system features that are usually inaccessible by creating an extension. The final chapter explains how to convert the skills you have gained in creating a Python extension to embed Python in a C program. This is a less common requirement, but it has some interesting advantages and possibilities and once you know how to create a Python extension it is easy.

Mike James has a BSc in Physics, an MSc in Mathematics, a PhD in Computer Science and in a long career as a programmer he has mastered many programming languages. He is the founder and chief editor of I-Programmer, the online magazine written by programmers for programmers and the author of dozens of books. His previous three books on Python, Programmer’s Python: Everything Is An ObjectProgrammer’s Python: Everything Is Data and Programmer's Python: Async form a set of "Something Completely Different" books that look at what makes Python special and sets it apart from other programming languages. While not part of the series, this book shares the same overall philosophy.
  • Publisher ‏ : ‎ I/O Press (September 30, 2023)
  • Language ‏ : ‎ English
  • Paperback ‏ : ‎ 265 pages
  • ISBN-10 ‏ : ‎ 1871962838
  • ISBN-13 ‏ : ‎ 978-1871962833
  • Item Weight ‏ : ‎ 1.3 pounds
  • Dimensions ‏ : ‎ 7 x 0.6 x 10 inches


  • ASIN ‏ : ‎ B0CK71TQ17
  • Publisher ‏ : ‎ I/O Press; 1st edition (September 30, 2023)
  • Publication date ‏ : ‎ September 30, 2023
  • Language ‏ : ‎ English
  • File size ‏ : ‎ 4205 KB


  • Publisher ‏ : ‎ I/O Press (October 1, 2023)
  • Language ‏ : ‎ English
  • Hardcover ‏ : ‎ 265 pages
  • ISBN-10 ‏ : ‎ 1871962129
  • ISBN-13 ‏ : ‎ 978-1871962123
  • Item Weight ‏ : ‎ 1.3 pounds
  • Dimensions ‏ : ‎ 7 x 0.79 x 10 inches