解决 M1 Mac 'has no attribute 'enable_load_extension'
最近由于项目需要,使用spatialite
插件,但是实际使用时遇到以下错误
AttributeError: 'sqlite3.Connection' object has no attribute 'enable_load_extension'
废了点心思,最终在Python3.9文档中找到如下描述:
sqlite3 模块的构建默认没有附带可加载扩展支持,因为某些平台(特别是 Mac OS X)上的 SQLite 库在编译时未使用此特性。 要获得可加载扩展支持,你必须传入 --enable-loadable-sqlite-extensions 来进行配置。
描述比较清晰,主要是因为系统环境,导致编译时未打开enable-loadable-sqlite-extensions
于是尝试了几个版本的python以后,最终成功编译 python3.8.10
编译流程:
下载 python3.8.10 到本地
解压到任意目录
-
cd /解压目录 ./configure --enable-loadable-sqlite-extensions # --enable-loadable-sqlite-extensions是关键 make make install # 可能会出现缺少依赖无法编译的问题,可以根据实际报错处理
最后经过测试可以完美调用 enable_load_extension
函数