Z twoich komentarzy, Twój problem jest to, że preinstalowany SQLite 3.7 pochodzi wyższy niż na ścieżce swojej strony trzeciej 3.8. Oznacza to, że domyślnie po zainstalowaniu pysqlite2
znajdzie i użyje tego 3,7, więc nic ci to nie pomoże. I prawdopodobnie nie chcesz zmieniać całej swojej ścieżki tylko po to, aby sobie z tym poradzić.
Ale to dobrze, tak długo, jak 3.8 znajduje się pierwszy w czasie kompilacji, nie ma znaczenia, co jest pierwsze w czasie wykonywania; ścieżka do 3.8 zostanie wypalona w module. Istnieje wiele sposobów, aby to zrobić, ale najprostszą jest coś takiego:
$ brew install sqlite3
$ sudo -s
# LDFLAGS=-L/usr/local/opt/sqlite/lib CPPFLAGS=-I/usr/local/opt/sqlite/include pip2.7 install pysqlite
# ^D
$ python
>>> import sqlite3
>>> sqlite3.sqlite_version
'3.7.13'
>>> import pysqlite2.dbapi2
>>> pysqlite2.dbapi2.sqlite_version
'3.8.6'
W LDFLAGS
i CPPFLAGS
zmienne pochodzą z wyjściem kroku brew install sqlite3
. Jeśli zainstalowałeś sqlite3
w inny sposób, musisz uzyskać odpowiednie wartości - prawdopodobnie /usr/local/lib
i /usr/local/include
, ale jeśli nie, wyszukaj libsqlite3.dylib
i sqlite3.h
.
Zauważ, że jeśli się dokładnie tych czynności, dostaniesz wersję beztłuszczowej od libsqlite3
, co oznacza, że pysqlite2
nie będzie działać w trybie 32-bitowym. Wątpię, aby to było dla ciebie problemem, ale jeśli tak jest, możesz po prostu go zainstalować --universal
lub użyć innego instalatora zamiast Homebrew.
Jak zainstalowałeś SQLite 3.8.4.3? Instalator binarny z sqlite.org, Homebrew, sprawdź i skompiluj źródło, ...? – abarnert
Wierzę, że spróbowałem tych wszystkich. Czy upewnisz się, że nowa wersja jest używana przez pakiet Pythona? –
Nie, żaden z nich nie upewni się, robiąc coś dodatkowego. Ale nikt nie może ci powiedzieć, jak postępować dalej, nie wiedząc, co zrobiłeś. (I gdzie skończyły się libs i jak wygląda twoja 'PATH', itd.). – abarnert