Dai vostri commenti, il problema è che il pre-installato sqlite 3.7 viene superiore sul percorso che di terze parti 3.8. Ciò significa che quando si crea pysqlite2
, per impostazione predefinita, troverà e userà quello 3.7, quindi non ti farà nulla di buono. E probabilmente non vuoi cambiare tutto il tuo percorso solo per far fronte a questo.
Ma va bene, finché il 3.8 viene trovato prima al momento della compilazione, non importa ciò che viene prima in fase di esecuzione; il percorso per 3.8 verrà inserito nel modulo. Ci sono un certo numero di modi per farlo, ma il più semplice è qualcosa di simile:
$ 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'
I LDFLAGS
e CPPFLAGS
variabili provenivano da l'uscita del passo brew install sqlite3
. Se hai installato sqlite3
in un altro modo, dovrai ottenere i valori appropriati, possibilmente /usr/local/lib
e /usr/local/include
, ma in caso contrario, cerca libsqlite3.dylib
e sqlite3.h
.
Si noti che se si seguono esattamente questi passaggi, si otterrà una versione non grassa del libsqlite3
, il che significa che pysqlite2
non funziona in modalità a 32 bit. Dubito che sia un problema per te, ma se lo è, puoi semplicemente installarlo --universal
, o usare un programma di installazione diverso invece di Homebrew.
Come è stato installato SQLite 3.8.4.3? Installer binario da sqlite.org, Homebrew, controlla e crea il sorgente, ...? – abarnert
Credo di aver provato tutti quelli. Ci si assicurerà che la nuova versione sia usata dal pacchetto python? –
No, nessuno di loro si assicurerà senza fare qualcosa di aggiuntivo. Ma nessuno può dirti come procedere oltre senza sapere che cosa hai fatto. (E dove sono finite le librerie, e qual è il tuo 'PATH', e così via.) – abarnert