我在使用enable_load_extension()
时遇到以下错误:
属性错误:“sqlite3.Connection”对象没有属性“enable_load_extension”
我也看到了这一点,但sqlite3应该与Python一起提供。如何用正确的选项重新安装它?
sqlite3模块在默认情况下不支持可加载扩展,因为某些平台(特别是Mac OS X)的SQLite库在编译时没有此功能。要获得可加载扩展支持,必须传递-enable-loadable-sqlite-extensions来configure。
3条答案
按热度按时间juzqafwq1#
检查sqlite3是否在构建时启用了扩展加载。您可以通过运行可执行文件和
.dbconfig
命令进行检查字符串
如果不是这样,请通过Homebrew安装sqlite或从源代码see docs编译。
然后,您希望使用链接的适当sqlite3库从头开始构建Python。使用pyenv非常简单。可以通过
PYTHON_CONFIGURE_OPTS
环境变量(详细信息为here)和设置CPPFLAGS
和LDFLAGS
(参见here)提供特定的构建选项。使用pyenv构建,假设sqlite3是通过Homebrew安装的(查看
which sqlite3
和brew info sqlite
以了解安装版本和位置的详细信息):型
您可能还必须满足Python3的一些依赖项(例如在macos
brew install openssl xz gdbm
上)手动构建Python也非常简单,并且遵循类似的模式。一旦满足依赖关系,下载包含所需版本的tarball并设置编译选项以启用sqlite3扩展加载(并告诉make在哪里可以找到新编译的SQLite构建):
型
mrwjdhj32#
如果你的Python
sqlite3
模块不支持加载扩展,你可以通过使用sqlean.py
包来解决这个问题。它是标准库的
sqlite3
模块的直接替代品,已经为Windows,Linux和macOS预编译,因此您不需要编译任何东西。个字符
b0zn9rqh3#
您需要找到安装Python的文件夹并重新安装它。
在doc和dev guide中,您可以找到有关编译器配置的更多信息。
第1步:跟踪当前配置
字符串
步骤2:重新安装(从python的文件夹里面!)
型
步骤3:再次检查步骤1的配置
型
步骤4:更新路径、环境变量等
有关处理器数量和
altinstall
的更多信息,请在上面的 * 开发指南 * 的链接中查找ex,这不是强制性的,只是取决于您的个人需求。在sqlite3文档中,您可以找到
enable_load_extension
的工作示例。