Sqlite是很好的数据库,如果需要编译一个定制版的sqlite(修改sqlite源文件中的一些内容,假如生成的动态库的名称为libxsqlite.so,放在usr/local/lib目录下),然后再Python中使用,则需要在安装python时改动一下setup.py文件
找到sqlite_inc_paths,加入修改后的sqlite头文件的目录:
1.
sqlite_inc_paths = [ '/usr/include',
'/usr/include/sqlite',
'/usr/include/sqlite3',
'/usr/local/include',
'/usr/local/include/sqlite',
'/usr/local/include/sqlite3',
]
改为
sqlite_inc_paths = [ '/usr/include',
'/usr/include/sqlite',
'/usr/include/sqlite3',
'/usr/local/include',
'/usr/local/include/sqlite',
'/usr/local/include/sqlite3',
'/usr/local/include/xsqlite3',
]
2.
sqlite_libfile = self.compiler.find_library_file(
sqlite_dirs_to_check + lib_dirs, 'sqlite3')
改为
sqlite_libfile = self.compiler.find_library_file(
sqlite_dirs_to_check + lib_dirs, 'xsqlite3')
3.
exts.append(Extension('_sqlite3', sqlite_srcs,
define_macros=sqlite_defines,
include_dirs=include_dirs,
library_dirs=sqlite_libdir,
extra_link_args=sqlite_extra_link_args,
libraries=["sqlite3",]))
改为
exts.append(Extension('_sqlite3', sqlite_srcs,
define_macros=sqlite_defines,
include_dirs=include_dirs,
library_dirs=sqlite_libdir,
extra_link_args=sqlite_extra_link_args,
libraries=["xsqlite3",]))
修改好之后,执行:
1)./configure--enable-loadable-sqlite-extensions(--enable-loadable-sqlite-extensions是运行sqlite中加载动态库,’selectload_extensions(‘XXX.so’)’)
2)make –j 8
3)sudo make install