适用于Python 3.x的Sqlite版本

时间:2011-06-15 11:34:28

标签: python sqlite

我想在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)如果我需要你

2 个答案:

答案 0 :(得分:9)

不要将SQLite的版本与pysqlite的版本混淆,后者是SQLite API的Python绑定。您使用的versionversion_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 ...