2012-11-06 9 views
5

Dzień dobry.Uaktualnienie wersji sqlite3 przy użyciu Pythona 2.7.3 i pysqlite2 2.6.3

Ostatnio uczyłem się Pythona i sqlite i mam problem z instalacją najnowszej wersji sqlite3 (3.7.14.1). Używam Pythona 2.7.3 w systemie Windows 7 i zainstalowałem najnowszą wersję pysqlite2 (2.6.3) przy użyciu instalatora systemu Windows. Użyłem następujący kod do importu pysqlite i sprawdzić wersje i oto wyniki:

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

Bazując na powyższym kodzie, wersja sqlite3 stosowany jest starszy. Pobrałem najnowszy plik sqlite3.dll i nadpisałem ten znaleziony w katalogu Python27 \ DLLs \. Ale kiedy uruchamiam sqlite3.sqlite_version, nadal daje mi starą wersję. Jednak przy korzystaniu z domyślnego modułu pytlona sqlite3 pokazuje starą wersję modułu (2.6.0) i najnowszą wersję sqlite3.dll, którą właśnie skopiowałem. Zobacz kod poniżej:

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

Moje pytanie brzmi: jak zaktualizować sqlite3 do wersji 2.6.3.1 pysqlite2 2.6.3? Czy ktoś może mi pomóc?

Dziękuję.

Odpowiedz

6

pysqlite2 instalator zapewne dostał od here zawiera sqlite3 kompilowane do _sqlite.pyd, nie używać dll znaleźć w katalogu bibliotek DLL (że ktoś jest Uset tylko przez moduł sqlite3).

Jeśli chcesz uaktualnić używaną wersję sqlite, musisz sam dokonać rekompilacji pysqlite2.

Albo, jak pysqlite2 jest praktycznie identyczna sqlite3, można również wymienić kompletny pakiet z pliku pysqlite2.py conaining tylko:

from sqlite3 import * 
+0

Dzięki za odpowiedź. Tak więc plik sqlite3.dll został skompilowany ze źródła do _sqlite.pyd. Jeśli chodzi o kompilowanie pysqlite2, próbowałem go, ale pojawia się błąd. Może mieć coś wspólnego z brakiem kompilatora c do kompilacji źródła sqlite3. Spróbuję zainstalować kompilator c i spróbuję ponownie, jeśli otrzymam ten sam błąd. –

+0

Co do drugiej opcji, czy chcesz usunąć całą zawartość katalogu pysqlite2 i umieścić plik pysqlite2.py? –

+0

tak, dokładnie. w ten sposób używałbyś sqlite3 zamiast pysqlite2, zachowując kompatybilność wsteczną z modułami importującymi te ostatnie. – mata

Powiązane problemy