2012-11-06 60 views
5

美好的一天。使用python 2.7.3和pysqlite2升級sqlite3版本2.6.3

我最近一直在學習python和sqlite,並無法安裝最新版本的sqlite3(3.7.14.1)。我在Windows 7中使用python 2.7.3,並使用Windows安裝程序安裝了最新的pysqlite2版本(2.6.3)。我用下面的代碼導入pysqlite和檢查版本,這些都是結果:

>>> from pysqlite2 import dbapi2 as sqlite3 
>>> sqlite3.version 
'2.6.3' 
>>> sqlite3.sqlite_version 
'3.7.6.2' 

基於上面的代碼,使用的sqlite3的版本是一老一。我已經下載了最新的sqlite3.dll並覆蓋了在Python27 \ DLLs \目錄中找到的那個。但是當我運行sqlite3.sqlite_version時,它仍然給我舊版本。但是,當使用默認的python sqlite3模塊時,它會顯示舊版本的模塊(2.6.0)以及我剛剛複製的最新版本的sqlite3.dll。見下面的代碼:

>>> import sqlite3 
>>> sqlite3.version 
'2.6.0' 
>>> sqlite3.sqlite_version 
'3.7.14.1' 

我的問題是,我該如何升級pysqlite2 2.6.3的sqlite3 3.7.14.1?誰能幫我?

謝謝。

回答

6

pysqlite2安裝程序,你可能從here了包含sqlite3編譯成_sqlite.pyd,它不使用的DLL文件目錄中(即一個僅由sqlite3模塊USET)的DLL。

所以,如果你想升級使用的sqlite版本,你將不得不自己重新編譯pysqlite2

或者,如pysqlite2幾乎是相同的sqlite3,你也可以只conaining文件pysqlite2.py更換整個包:

from sqlite3 import * 
+0

感謝您的回答。所以,sqlite3.dll已經從source編譯爲_sqlite.pyd。至於編譯pysqlite2,我試過了,但是我得到一個錯誤。它可能與沒有C編譯器來編譯sqlite3源有關。我將嘗試安裝一個C編譯器,如果出現相同的錯誤,請重試。 –

+0

至於第二個選項,你的意思是刪除pysqlite2目錄的全部內容並放置一個pysqlite2.py? –

+0

是的,確切地說。這樣你將使用sqlite3而不是pysqlite2,同時保持向後兼容導入後者的模塊。 – mata