Python 3.x的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) 如果我应该有一个更新的版本,那它去哪了——我需要设置一个环境变量吗?
3) 如果我需要更新...
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 呢?
你可能想看看 这个长长的故事 ...
不要把SQLite的版本和pysqlite的版本搞混了,pysqlite是Python用来连接SQLite的工具。你用的version
和version_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',)