I'd recommend http://stackoverflow.com/ to ask general questions. But to answer you: the header files are used only when building the cffi module (i.e. running the file with set_source() and compile() that produces the .so, assuming this is what you're doing). The actual program only needs the compiled .so. You can even remove the cffi package (i.e. all .py files inside cffi) and keep only _cffi_backend.so together with your own compiled .so, if you are short on space.