今天了解了一下用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包
然后解壓源碼包,把dll包里面的def文件放進源碼文件夾中。接着我們需要修改sqlite3.c文件,添加兩個宏
#define SQLITE_ENABLE_RTREE 1
#define SQLITE_ENABLE_COLUMN_METADATA 1
然后便可以用vs2008的commandline進行編譯,你也可以建一個vs2008的dll工程,這里是我建好的,也提供了編譯好的dll和lib的下載
然后把頭文件放進pysqlite的src文件夾,把lib放進pysqlite根目錄(src上一層),接着運行setup.py build和setup.py install,然后一切就ok了!
