Each OS has to load a different extension:
Windows: libspatialite-2.dll
Linux: libspatialite.so
Mac OS X: libspatialite.dylib
This, I think, can be simplified by just having:
self.execute(r'SELECT load_extension("libspatialite");')
but I need others to test in Linux and Mac environments.
Otherwise we would have to check which OS are we running and load the corresponding extension.