升级python的sqlite库版本

今天了解了一下用python获取chrome cookie信息,在研究的过程中,发现打开数据库失败,后来调查了一下发现是由于sqlite3库太老的缘故,起码需要3.8以上,然后看了一下python 2.7.11的sqlite3版本,竟然是3.6的,于是便开始着手研究如何升级python的sqlite3库,最终完美升级到了3.13版本,这里给大家一个参考。

查看python的sqlite3版本

import sqlite3
print sqlite3.sqlite_version

我们可以通过安装pysqlite库来升级python的sqlite3库版本,最简单的方法当然是直接在命令行输入pip install pysqlite 如果你直接成功了,那就不需要下面繁琐的步骤了。

我这边在编译的过程中出现了问题,所以在pypi下载了pysqlite的源码包,准备自己编译。 pysqlite的源码编译依赖sqlite3库和头文件,通过运行pysqlite中的setup.py build 命令,我发现使用的是vc9.0的编译器,我正好安装了vs2008,如果你没有安装,可以下一个微软提供的编译套件,网址如下

Microsoft Visual C++ Compiler for Python 2.7

然后我们需要编译sqlite3,当然如果你有最新的sqlite3.h和sqlite3.lib的话就不需要这一步,下面提供了编译好的lib和dll文件。

编译sqlite3需要去官网下载两个包,一个源码包,一个windows平台的dll包

sqlite3官网下载页面

然后解压源码包,把dll包里面的def文件放进源码文件夹中。接着我们需要修改sqlite3.c文件,添加两个宏

#define SQLITE_ENABLE_RTREE 1
#define SQLITE_ENABLE_COLUMN_METADATA 1

然后便可以用vs2008的commandline进行编译,你也可以建一个vs2008的dll工程,这里是我建好的,也提供了编译好的dll和lib的下载

sqlite3 for vs2008

然后把头文件放进pysqlite的src文件夹,把lib放进pysqlite根目录(src上一层),接着运行setup.py buildsetup.py install,然后一切就ok了!

原文地址:https://www.cnblogs.com/magicdmer/p/5692703.html