我想在Python 3.1.3中使用sqlite3,我需要将enable_load_extension设置为true。要做到这一点,我相信我需要sqlite版本3.x.从这里的阅读帖子来看,看起来合适的sqlite版本应该与python 2.6及更高版本捆绑在一起。但是,当我这样做时:
import sqlite3
sqlite3.version_info
返回的结果是:'2.4.1'
我在运行Python 2.6的另一台机器上得到了相同的答案。
pysqlite网站没有Python 3.x的二进制文件。我的Python副本来自官方Python站点。
所以: 1)3.1应该有什么版本的sqlite? 2)如果我应该有一个更新的版本,它已经消失了 - 我需要设置一个环境变量吗? 2)如果我需要你
答案 0 :(得分:9)
不要将SQLite的版本与pysqlite的版本混淆,后者是SQLite API的Python绑定。您使用的version
和version_info
属性是指后者。
有没有想过为什么模块名为sqlite3
?它只支持版本3.x!
要检查SQLite版本,请改为使用sqlite_version
:
import sqlite3
print sqlite3.sqlite_version
在我的Python 2.6安装中,这会打印3.5.9
。对于Python 3.2,我得到3.7.4
。
您还可以使用SQL获取版本:
>>> import sqlite3
>>> connection = sqlite3.connect(':memory:')
>>> cursor = connection.cursor()
>>> cursor.execute('SELECT sqlite_version()').fetchone()
('3.7.4',)
答案 1 :(得分:2)
你需要sqlite3.sqlite_version_info
... Python 2.6和3.1为3.5.9,Python 2.7为3.6.21,Python 3.2为3.7.4。你得到的是pysqlite的版本。
您尝试“将enable_load_extension设置为true”吗?
您可能希望阅读一些this long saga ...