Из ваших комментариев, ваша проблема в том, что ваш предварительно установленном SQLite 3,7 поставляется выше на вашем пути, чем сторонние 3.8. Это означает, что когда вы строите pysqlite2
, по умолчанию он найдет и использует 3,7, так что это не принесет вам пользы. И вы, вероятно, не хотите меняться по всему пути, чтобы справиться с этим.
Но это нормально, если 3.8 находится во время сборки, неважно, что на первом месте во время выполнения; путь к 3.8 будет запекаться в модуль. Есть несколько способов сделать это, но самое простое что-то вроде этого:
$ 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'
В LDFLAGS
и CPPFLAGS
переменных пришел на выходе brew install sqlite3
шага. Если вы установили sqlite3
каким-либо другим способом, вам нужно будет получить соответствующие значения - возможно, /usr/local/lib
и /usr/local/include
, но если нет, найдите libsqlite3.dylib
и sqlite3.h
.
Обратите внимание, что если вы будете следовать точно эти шаги, вы получите версию обезжиренного из libsqlite3
, что означает, что pysqlite2
не будет работать в 32-битном режиме. Я сомневаюсь, что это проблема для вас, но если это так, вы можете просто установить его --universal
или использовать другой установщик вместо Homebrew.
Как вы установили SQLite 3.8.4.3? Двоичный установщик из sqlite.org, Homebrew, проверьте и постройте источник, ...? – abarnert
Я считаю, что я пробовал все это. Будет ли убедиться, что новая версия используется пакетом python? –
Нет, никто из них не будет уверен, не делая ничего дополнительного. Но никто не может рассказать вам, как продолжать дальше, не зная, что вы сделали. (И там, где закончились библиотеки, и как выглядит ваш 'PATH' и т. Д.) – abarnert