Spec-Zone.ru › Django 1.8

Установка Spatialite

SpatiaLite добавляет пространственную поддержку в SQLite, превращая его в полнофункциональную пространственную базу данных.

Сначала проверьте, можно ли установить SpatiaLite из системных пакетов или библиотек. Например, в дистрибутивах на основе Debian попробуйте установить пакет spatialite-bin. Для Mac OS X следуйте специфическим инструкциям ниже. Для Windows вы можете найти бинарные файлы на странице Gaia-SINS. В любом случае, вы всегда сможете установить из исходного кода.

После завершения процесса установки перейдите к созданию пространственной базы данных для SpatiaLite.

Установка из исходного кода

GEOS и PROJ.4 должны быть установлены до компиляции SpatiaLite.

SQLite

Сначала проверьте, скомпилирован ли SQLite с модулем R*Tree. Запустите командную строку sqlite3 и введите следующую команду:

sqlite> CREATE VIRTUAL TABLE testrtree USING rtree(id,minX,maxX,minY,maxY);

Если вы получите ошибку, вам придется перекомпилировать SQLite из исходного кода. В противном случае просто пропустите этот раздел.

Для установки из исходного кода загрузите последнюю архивную сборку исходного кода с страницы загрузки SQLite и распакуйте её:

$ wget http://sqlite.org/sqlite-amalgamation-3.6.23.1.tar.gz
$ tar xzf sqlite-amalgamation-3.6.23.1.tar.gz
$ cd sqlite-3.6.23.1

Затем запустите скрипт configure – однако переменной среды CFLAGS необходимо настроить так, чтобы SQLite знал, как скомпилировать модуль R*Tree:

$ CFLAGS="-DSQLITE_ENABLE_RTREE=1" ./configure
$ make
$ sudo make install
$ cd ..

Библиотека SpatiaLite (libspatialite)

Получите последнюю сборку исходного кода библиотеки SpatiaLite с страницы загрузки:

$ wget http://www.gaia-gis.it/gaia-sins/libspatialite-sources/libspatialite-4.1.0.tar.gz
$ tar xaf libspatialite-4.1.0.tar.gz
$ cd libspatialite-4.1.0
$ ./configure
$ make
$ sudo make install

Примечание

Для пользователей Mac OS X, компилирующих из исходного кода, библиотеке SpatiaLite и инструментам необходимо настроить target:

$ ./configure --target=macosx

pysqlite2

Если вы решили использовать новую версию pysqlite2 вместо модуля sqlite3 стандартной библиотеки Python, то вам необходимо убедиться, что он может загружать внешние расширения (то есть, необходимый метод enable_load_extension доступен, чтобы SpatiaLite мог быть загружен).

Это может потребовать самостоятельной компиляции. Для этого загрузите pysqlite2 2.6 и распакуйте его:

$ wget https://pypi.python.org/packages/source/p/pysqlite/pysqlite-2.6.3.tar.gz
$ tar xzf pysqlite-2.6.3.tar.gz
$ cd pysqlite-2.6.3

Затем используйте текстовый редактор, чтобы изменить файл setup.cfg следующим образом:

[build_ext]
#define=
include_dirs=/usr/local/include
library_dirs=/usr/local/lib
libraries=sqlite3
#define=SQLITE_OMIT_LOAD_EXTENSION

или если вы работаете на Mac OS X:

[build_ext]
#define=
include_dirs=/Library/Frameworks/SQLite3.framework/unix/include
library_dirs=/Library/Frameworks/SQLite3.framework/unix/lib
libraries=sqlite3
#define=SQLITE_OMIT_LOAD_EXTENSION

Примечание

Важным моментом здесь является то, что вы должны закомментировать флаг define=SQLITE_OMIT_LOAD_EXTENSION, и что параметры include_dirs и library_dirs должны быть разкоментированы и установлены в соответствующий путь, если файлы заголовков и библиотеки SQLite не находятся в /usr/include и /usr/lib соответственно.

После соответствующей модификации setup.cfg, запустите скрипт setup.py для сборки и установки:

$ python setup.py install

Инструкции, специфичные для Mac OS X

Для установки библиотеки и инструментов SpatiaLite пользователи Mac OS X могут выбрать пакеты KyngChaos и Homebrew.

KyngChaos

Сначала следуйте инструкциям в разделе пакетов KyngChaos.

При создании пространственной базы данных для SpatiaLite требуется программа spatialite. Однако вместо попытки скомпилировать инструменты SpatiaLite из исходного кода загрузите бинарные файлы SpatiaLite для OS X и установите spatialite в место, доступное в вашей PATH. Например:

$ curl -O http://www.gaia-gis.it/spatialite/spatialite-tools-osx-x86-2.3.1.tar.gz
$ tar xzf spatialite-tools-osx-x86-2.3.1.tar.gz
$ cd spatialite-tools-osx-x86-2.3.1/bin
$ sudo cp spatialite /Library/Frameworks/SQLite3.framework/Programs

Наконец, чтобы GeoDjango смог найти библиотеку SpatiaLite KyngChaos, добавьте следующее в вашу settings.py:

SPATIALITE_LIBRARY_PATH='/Library/Frameworks/SQLite3.framework/SQLite3'

Homebrew

Homebrew обрабатывает все пакеты, связанные со SpatiaLite, от вашего имени, включая SQLite3, SpatiaLite, PROJ и GEOS. Установите их так:

$ brew update
$ brew install spatialite-tools
$ brew install gdal

Наконец, чтобы GeoDjango смог найти библиотеку SpatiaLite, добавьте следующее в вашу settings.py:

SPATIALITE_LIBRARY_PATH='/usr/local/lib/mod_spatialite.dylib'

Создание пространственной базы данных для SpatiaLite

При запуске manage.py migrate с базой данных SQLite или SpatiaLite, файл базы данных будет автоматически создан, если он не существует. Django также позаботится о том, чтобы пространственные метаданные были инициализированы в базе данных.

До Django 1.8 вам нужно было самостоятельно инициализировать таблицы пространственных метаданных, вручную выполняя запрос «SELECT InitSpatialMetaData();».

© Django Software Foundation and individual contributors
Licensed under the BSD License.
https://docs.djangoproject.com/en/1.8/ref/contrib/gis/install/spatialite/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API