Python 3.x的Sqlite版本

4 投票
2 回答
12422 浏览
提问于 2025-04-16 19:36

我想在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) 如果我应该有一个更新的版本,那它去哪了——我需要设置一个环境变量吗?
3) 如果我需要更新...

2 个回答

3

你需要查看一下 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 呢?

你可能想看看 这个长长的故事 ...

12

不要把SQLite的版本和pysqlite的版本搞混了,pysqlite是Python用来连接SQLite的工具。你用的versionversion_info这两个属性其实是指pysqlite的版本。

你有没有想过为什么这个模块叫sqlite3?因为它只支持3.x版本的SQLite!

如果你想查看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',)

撰写回答