Python 处理字符串时插入和更新集合问题

Python 处理字符串时插入和更新集合问题,python,python-3.x,sqlite,python-3.5,Python,Python 3.x,Sqlite,Python 3.5,我有这个问题已经有一段时间了,下面是一个小故事: 我想用Python脚本在我的Sqlite数据库中编辑一个日期,所以我使用以下方法来完成此操作: import sqlite3 db = sqlite3.connect('test.db') cursor = db.cursor() cursor.execute("UPDATE info SET date = '2003-03-14 12:34:20' WHERE id = 10") 但当我执行此操作时,会出现一个异常: sqlite3.Oper

我有这个问题已经有一段时间了,下面是一个小故事:

我想用
Python
脚本在我的
Sqlite
数据库中编辑一个日期,所以我使用以下方法来完成此操作:

import sqlite3
db = sqlite3.connect('test.db')
cursor = db.cursor()
cursor.execute("UPDATE info SET date = '2003-03-14 12:34:20' WHERE id = 10")
但当我执行此操作时,会出现一个异常:

sqlite3.OperationalError: no such module: fts4
通过一些故障排除,我成功地将问题缩小到引号的问题。因为即使我把它减少到一年,它仍然会产生一个异常

如果尝试使用引号插入字符串,则会出现相同的异常

我怎样才能解决这个问题?我找到的大多数解决方案都是通过在构建时使用
SQLITE\u ENABLE\u fts3
标志启用
fts3/fts4
来解决的,但我不知道如何做到这一点

此外,完全相同的代码在
python3.6.5
2.7.12
中都能顺利运行。在
Python3
?,或者更具体地说
3.5.2
中发生了什么


我应该补充一点,它可以在linux中工作,但不能在windows中工作。

FTS3/FTS4扩展支持全文搜索,因此您的
info
表可能是一个虚拟FTS表,需要FTS4引擎工作,而Python的SQLite二进制文件不包括它。您无法解决此问题(除了将其转换为常规表之外),因此您需要更新Python或至少其链接的SQLite二进制文件(例如,当涉及Windows时,匹配您的版本并替换
%PYTHONHOME%\DLLs
文件夹中的
sqlite3.dll
),它在Windows上的3.6.5中工作。我可以将SQLite3 DLL从3.6.5复制到3.5.2吗?如果两个CPython版本都是为相同的体系结构(即32位/64位)编译的,可能会这样。