CFFI
The CFFI library offers options very similar to ctypes, but it's a bit more direct. Unlike the ctypes library, a C compiler is really a necessity for CFFI. With it comes the opportunity to directly call your C compiler in a very easy way:
>>> import cffi >>> ffi = cffi.FFI() >>> ffi.cdef('int printf(const char* format, ...);') >>> libc = ffi.dlopen(None) >>> arg = ffi.new('char[]', b'spam') >>> libc.printf(arg) 4 spam>>>
Okay… so that looks a bit weird right? We had to define how the printf function looks and specify the arguments to printf with a valid C type declaration. Getting back to the declarations, however, instead of None to ffi.dlopen, you can also specify the library you wish to load. If you remember the ctypes.util.find_library function, you can use that again in this case:
>>> from ctypes import util >>> import cffi >>> libc = ffi.dlopen(util...