Я отрываю свои волосы, пытаясь установить Spatialite для GeoDjango!
Я уже использую Homebrew, это обычно легко и удобно, поэтому я изначально попытался выполнить инструкции Homebrew для GeoDjango.
Но это не позволяет установить любую базу данных, то есть Spatialite. Следующим шагом является попытка установить сам Spatialite, но нет специальных инструкций Django, предназначенных для Homebrew.
Я нашел этот учебник, который выглядит идеально - домашняя и виртуальная версия Spatialite для GeoDjango.
Но это не сработает... похоже, что мой pysqlite
связан с версией SQLite, не связанной с пространством, которая поставляется с OS X, а не с пространственной версией, которую я установил из Homebrew, я получить эту ошибку, когда Django попытался подключиться к db:
"Библиотека pysqlite не поддерживает загрузку расширений C. Оба SQLite и pysqlite должны быть настроены так, чтобы позволить загрузкам расширений использовать SpatiaLite."
Автор pysqlite не ответил на мои просьбы о помощи в Github, и я ничего не нашел с помощью Google.
Итак, я вернулся к чертежной доске и решил следовать "Инструкции Mac OS X" в документах GeoDjango.. путем установки различных гео-библиотек из двоичных пакетов KyngChaos.
Документы говорят: "Установите пакеты в том порядке, в котором они указаны выше", но я обнаружил, что не смог установить UnixImageIO
, не устанавливая сначала PROJ
. Ссылка в документах для загрузки двоичных файлов Spatialite (http://www.gaia-gis.it/spatialite-2.3.1/binaries.html) сломана, поэтому я использовал "Spatialite Tools v4.1" от KyngChaos вместо.
Переходя к следующему шагу, я получаю эту ошибку:
$ spatialite geodjango.db "SELECT InitSpatialMetaData();"
SQLite header and source version mismatch
2013-10-17 12:57:35 c78be6d786c19073b3a6730dfe3fb1be54f5657a
2013-09-03 17:11:13 7dd4968f235d6e1ca9547cda9cf3bd570e1609ef
Не совсем уверен, что случилось в этот момент.
Есть кто-то еще здесь, на SO, который прошел маршрут KyngChaos и просто заканчивается тем же "Оба SQLite и pysqlite должны быть настроены так, чтобы можно было загрузить extensions", который я получил от маршрута Homebrew в любом случае.
Я нашел этот билет # 17756 для добавления поддержки pyspatialite
для Django - pyspatialite
должен быть более простым способом pip install
все, но, к сожалению, оно тоже не работает (см. комментарии к нижней части билета).
Я немного неохотно начинаю пытаться собрать все из исходников вручную, так как кажется вероятным, что я снова столкнусь с теми же проблемами, но потрачу часы Googling на информацию о критических ошибках компилятора, волшебных флагах и путях и т.д. по пути.
Я готов сдаться и просто использовать Postgres/PostGIS.