A few years ago, I wrote a long series of tutorials showing how to embed Python into a C/C++ program, and periodically threatened to write another series showing how to go the other way i.e. extend Python by calling your own C/C++ code[1]Typically because you want better performance, or because you want to run it multi-threaded, which Python is known to not handle very well..
Well, I've finally made good on that promise and written some tutorials on how to write a Python extension module:
| A minimal setup | How to create a minimal Python extension module. |
| Calling functions | How to define a C/C++ function and call it from Python. |
| Handling errors | How to pass errors back to the calling Python code. |
| Callbacks | How to call back into Python from the C/C++ code. |
| Managing the GIL | How to manage the GIL, for better multi-threaded performance. |
Never let it be said that I don't keep my promises! ![]()
References
| ↑1 | Typically because you want better performance, or because you want to run it multi-threaded, which Python is known to not handle very well. |
|---|










I am a 
