在 python3 sqlite 中加载 sqlite3 扩展

如何将 sqlite 扩展正确加载到 python sqlite 导入中?


操作系统:Windows 7 64bit

sqlite3 版本:3.14.1 64bit

python3 版本:3.5.2 64bit


到目前为止,这是我的过程:使用以下命令将 extension-functions.c 编译为 libsqlitefunctions.dll:


gcc -shared -I "C:\Software\sqlite3\sqlite-master" -o libsqlitefunctions.dll extension-functions.c

然后我可以使用以下命令在 sqlite3 命令行中愉快地使用这些函数:


SELECT load_extension('libsqlitefunctions.dll');

但是,在 python 脚本中尝试时:


import sqlite3 as lite

con = lite.connect(db_file)

con.enable_load_extension(True)

con.load_extension("<<path to file>>\\libsqlitefunctions.dll")

出现此错误:


错误 找不到指定的模块。:


extension-functions.c 文件确实包含 COMPILE_SQLITE_EXTENSIONS_AS_LOADABLE_MODULE 部分,实际上它在使用命令行 sqlite3 时加载良好


附加说明:

python sqlite 包已安装并正常工作。

我也尝试将 python 路径中的 sqlite3.dll 更新到最新版本


Cats萌萌
浏览 113回答 2
2回答

郎朗坤

放置libsqlitefunctions.dll在全局可见的文件夹中,c:\WINDOWS\或者来自PATH环境变量的其他文件夹。然后您将能够使用简单的命令加载扩展:con.load_extension("libsqlitefunctions.dll")
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python