【问题标题】:How to setup FTS3/FTS4 with python2.7 on Windows如何在 Windows 上使用 python2.7 设置 FTS3/FTS4
【发布时间】:2011-04-18 22:17:49
【问题描述】:

默认情况下,FTS3/FTS4 在 python 中不起作用(最高 2.7)。我得到错误:

sqlite3.OperationalError:没有这样的模块:fts3
要么
sqlite3.OperationalError:没有这样的模块:fts4

如何解决?

【问题讨论】:

  • 我在 google 上找到了这个,你在 python/dll 文件夹中替换 sqlite.dll 的建议在我的情况下有效。我正在为此添加一个答案,以防其他人发现此问题。

标签: python sqlite full-text-search fts3 fts4


【解决方案1】:
  1. 下载最新的sql dll

  2. 替换 python/dll 文件夹中的 sqlite.dll。

【讨论】:

  • @styfle,如果此答案也适用于 FTS4,您能否编辑问题以反映这一点?对未来的人会有帮助。谢谢。
  • @MrValdez:我应该编辑它还是问问题的人?我应该只编辑标题还是什么?
  • @styfle,请提供问题标题和问题。这个想法是为了让这个问题对更多的人有帮助,也让通过搜索更容易找到。提问的人不会看到您的评论(因为您在此处发布了评论)。
【解决方案2】:

没关系。
从源代码安装 pysqlite 既简单又足够。

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

【讨论】:

    【解决方案3】:

    Naveen 说了什么,但是 =>

    对于 Windows 安装:

    在运行 setup.py 进行包安装时... Python 2.7 搜索已安装的 Visual Studio 2008。您可以通过设置来欺骗 Python 使用 Visual Studio

    SET VS90COMNTOOLS=%VS100COMNTOOLS%

    在调用 setup.py 之前。

    【讨论】:

      【解决方案4】:

      我的回答与 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 下载了sqlite 预编译的Windows 二进制文件并将其复制到我的Python DLL 目录中(我备份了原始的sqlite.dll)。我的 Python 应用程序开始运行良好。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-08-04
        • 1970-01-01
        • 1970-01-01
        • 2015-01-18
        • 1970-01-01
        • 2016-09-19
        • 2021-08-31
        相关资源
        最近更新 更多