在 Python 3 中使用 SQLite 的 FTS3/4
Posted
技术标签:
【中文标题】在 Python 3 中使用 SQLite 的 FTS3/4【英文标题】:Using SQLite's FTS3/4 with Python 3 【发布时间】:2015-05-05 17:56:29 【问题描述】:我一直在使用 python 的 Flask 框架开发 peewee 的示例博客应用程序。 (见https://github.com/coleifer/peewee,里面的例子>博客)。
我已经安装了所有要求,但是当我尝试运行该应用程序时,我不断得到
no such module : FTS4
错误。
您认为我为什么会收到此错误? 这是否意味着标准的 Python3 sqlite3 模块没有 FTS 模块?
如果是这样,有没有办法为 Python 3.4 启用(安装)FTS3/FTS4 模块?
【问题讨论】:
【参考方案1】:你可以打开一个 sqlite shell 并运行pragma compile_options
来查看你的 SQLite 有什么。 AFAIK 这与 Python3 无关。
这是我的:
sqlite> pragma compile_options;
ENABLE_COLUMN_METADATA
ENABLE_FTS3
ENABLE_RTREE
ENABLE_UNLOCK_NOTIFY
SECURE_DELETE
SYSTEM_MALLOC
THREADSAFE=1
如果你发现你没有 FTS 扩展,你可能需要重新编译 SQLite。另请查看文档:
http://sqlite.org/fts3.html
【讨论】:
感谢您的回答。我下载了 sqlite3 shell.exe 并检查了选项。我启用了 FTS3。 我只是不明白问题出在哪里。 你在shell中运行的sqlite和你在Python中找到的sqlite不一样; Python 包含自己的 DLL,默认情况下,Windows 上不包括 fts3 或 fts4,至少从 Python 2.7.11 开始。 我不认为你是正确的。 Python 动态链接您已安装的 SQLite 库。以上是关于在 Python 3 中使用 SQLite 的 FTS3/4的主要内容,如果未能解决你的问题,请参考以下文章
如何使用带有 Python 3.7 的 sqlite3 python 模块的 FTS5 扩展?
在 Python 3 中使用 SQLite 的 FTS3/4