如何在Windows上使用python2.7设置FTS3/FTS4

13

默认情况下(直到2.7版本),Python不支持FTS3/FTS4。运行时会出现以下错误:

sqlite3.OperationalError: no such module: fts3
或者

sqlite3.OperationalError: no such module: fts4

如何解决这个问题呢?


我在谷歌上找到了这个,你建议我在python/dll文件夹中替换sqlite.dll,在我的情况下起作用了。我会添加一个答案,以防其他人遇到这个问题。 - MrValdez
4个回答

17
  1. 下载最新的SQL DLL

  2. 将sqlite.dll替换为Python / dll文件夹中的文件。


@styfle,如果这个答案也适用于FTS4,你能否编辑问题以反映这一点?这对未来的人会很有帮助。谢谢。 - MrValdez
@MrValdez:我应该编辑它还是提问者?我只需要编辑标题还是其他的东西? - styfle
@styfle,请修改问题标题和问题内容,使其更有助于更多人,并且更容易通过搜索找到。由于您在此处发布评论,所以提问者将看不到您的评论。 - MrValdez

2

没关系。
从源代码安装pysqlite很容易且足够。

python setup.py build_static install 
从源代码安装时,默认启用了fts3。


0

就像Naveen所说的一样,但是 =>

对于Windows安装:

在运行setup.py进行软件包安装时... Python 2.7会搜索已安装的Visual Studio 2008。您可以通过设置

SET VS90COMNTOOLS=%VS100COMNTOOLS%

在调用setup.py之前欺骗Python使用Visual Studio。


0

我的回答与Python 2.7无关。但希望它对使用Python 3.5的用户有所帮助。我正在使用sqlite全文搜索功能。然而,当我尝试插入到一个FTS3虚拟表时

def insertdata(conn, parmvlu):

    sql = ''' INSERT INTO slangs(slang,polarity)
              VALUES(?,?) '''
    cur = conn.cursor()
    cur.execute(sql, parmvlu)
    return cur.lastrowid

我得到了一个错误 -

sqlite3.OperationalError: no such module: fts3

同样的错误也出现在 FTS4 虚拟表中。从 site 中得到启示,我从 here 下载并复制了 Windows 平台的预编译 SQLite 二进制文件到我的 Python DLL 目录下(我备份了原始的 sqlite.dll)。我的 Python 应用程序开始正常工作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接