Spec-Zone.ru › Django 3.1

Установка геопространственных библиотек

GeoDjango использует и/или предоставляет интерфейсы для следующих открытых геопространственных библиотек:

Программа Описание Необходимо Поддерживаемые версии
GEOS Geometry Engine Open Source Да 3.8, 3.7, 3.6, 3.5
PROJ.4 Библиотека картографических проекций Да (только PostgreSQL и SQLite) 6.3, 6.2, 6.1, 6.0, 5.x, 4.x
GDAL Библиотека абстракции геопространственных данных Да 3.1, 3.0, 2.4, 2.3, 2.2, 2.1, 2.0
GeoIP Библиотека геолокации по IP-адресам Нет 2
PostGIS Расширения пространственных данных для PostgreSQL Да (только PostgreSQL) 3.0, 2.5, 2.4, 2.3, 2.2
SpatiaLite Расширения пространственных данных для SQLite Да (только SQLite) 4.3

Обратите внимание, что более старые или более новые версии этих библиотек могут также успешно работать с GeoDjango. Ваше впечатление может отличаться.

Примечание

Интерфейсы GeoDjango к GEOS, GDAL и GeoIP могут быть использованы независимо от Django. Другими словами, база данных или файл настроек не требуются — импортируйте их как обычно из django.contrib.gis.

В Debian/Ubuntu рекомендуется установить следующие пакеты, которые установят необходимые геопространственные библиотеки напрямую или по зависимости:

$ sudo apt-get install binutils libproj-dev gdal-bin

Также обратитесь к платформенным инструкциям, если вы используете macOS или Windows.

Компиляция из исходного кода

При установке из исходного кода на системах UNIX и GNU/Linux, пожалуйста, внимательно следуйте инструкциям по установке и установите библиотеки в указанном порядке. Если вы используете MySQL или Oracle в качестве пространственной базы данных, необходима только библиотека GEOS.

Примечание

На платформах Linux может потребоваться выполнить команду ldconfig после установки каждой библиотеки. Например:

$ sudo make install
$ sudo ldconfig

Примечание

Пользователям macOS необходимо установить Xcode для компиляции программного обеспечения из исходного кода.

GEOS

GEOS — это библиотека на C++ для выполнения геометрических операций и является стандартным внутренним представлением геометрии, используемым GeoDjango (она находится за «ленивыми» геометриями). В частности, библиотека C API вызывается (например, libgeos_c.so) напрямую из Python с помощью ctypes.

Сначала скачайте GEOS с сайта GEOS и распакуйте архив исходного кода:

$ wget https://download.osgeo.org/geos/geos-X.Y.Z.tar.bz2
$ tar xjf geos-X.Y.Z.tar.bz2

Затем перейдите в директорию, где была распакована GEOS, запустите скрипт конфигурации, скомпилируйте и установите:

$ cd geos-X.Y.Z
$ ./configure
$ make
$ sudo make install
$ cd ..

Отладка

Не удаётся найти библиотеку GEOS

Когда GeoDjango не может найти GEOS, возникает эта ошибка:

ImportError: Could not find the GEOS library (tried "geos_c"). Try setting GEOS_LIBRARY_PATH in your settings.

Самое распространенное решение — правильно настроить ваши Настройки среды библиотеки или установить GEOS_LIBRARY_PATH в ваших настройках.

Если используется двоичный пакет GEOS (например, в Ubuntu), вам может потребоваться Установить binutils.

GEOS_LIBRARY_PATH

Если ваша библиотека GEOS находится в нестандартном месте или вы не хотите изменять системный путь к библиотекам, то можно добавить настройку GEOS_LIBRARY_PATH в ваш файл настроек Django с полным путем к библиотеке GEOS на C. Например:

GEOS_LIBRARY_PATH = '/home/bob/local/lib/libgeos_c.so'

Примечание

Настройка должна содержать полный путь к C-динамической библиотеке; другими словами, вы хотите использовать libgeos_c.so, а не libgeos.so.

См. также В моих логах полно ошибок, связанных с GEOS.

PROJ.4

PROJ.4 — это библиотека для преобразования геопространственных данных в разные системы координат.

Сначала скачайте исходный код PROJ.4 и файлы смещений датумов [1]:

$ wget https://download.osgeo.org/proj/proj-X.Y.Z.tar.gz
$ wget https://download.osgeo.org/proj/proj-datumgrid-X.Y.tar.gz

Затем распакуйте архив исходного кода и извлеките файлы смещения датумов в подкаталог nad. Это необходимо сделать до конфигурации:

$ tar xzf proj-X.Y.Z.tar.gz
$ cd proj-X.Y.Z/nad
$ tar xzf ../../proj-datumgrid-X.Y.tar.gz
$ cd ..

Наконец, выполните конфигурацию, сборку и установку PROJ.4:

$ ./configure
$ make
$ sudo make install
$ cd ..

GDAL

GDAL — отличная открытая геопространственная библиотека, поддерживающая чтение большинства форматов векторных и растровых пространственных данных. В настоящее время GeoDjango поддерживает только возможности векторных данных GDAL [2]. GEOS и PROJ.4 должны быть установлены до сборки GDAL.

Сначала загрузите последнюю версию выпуска GDAL и распакуйте архив:

$ wget https://download.osgeo.org/gdal/X.Y.Z/gdal-X.Y.Z.tar.gz
$ tar xzf gdal-X.Y.Z.tar.gz
$ cd gdal-X.Y.Z

Выполните конфигурацию, сборку и установку:

$ ./configure
$ make # Go get some coffee, this takes a while.
$ sudo make install
$ cd ..

Примечание

Поскольку GeoDjango имеет свой собственный Python-интерфейс, указанные выше инструкции не создают собственные Python-связки GDAL. Связки можно создать, добавив флаг --with-python при выполнении configure. См. GDAL/OGR в Python для получения дополнительной информации о связях GDAL.

При возникновении проблем обратитесь к разделу «Отладка» ниже для получения советов и решений.

Отладка

Не удаётся найти библиотеку GDAL

Если GeoDjango не может найти библиотеку GDAL, настройте Настройки среды библиотеки или задайте GDAL_LIBRARY_PATH в настройках.

GDAL_LIBRARY_PATH

Если ваша библиотека GDAL находится в нестандартном месте или вы не хотите изменять системный путь к библиотекам, то можно добавить настройку GDAL_LIBRARY_PATH в ваш файл настроек Django с полным путем к библиотеке GDAL. Например:

GDAL_LIBRARY_PATH = '/home/sue/local/lib/libgdal.so'

Примечания

[1] Файлы смещения датумов необходимы для преобразования данных в определенные проекции. Например, строка PROJ.4 для проекции Google (900913 или 3857) требует файла сетки null, который присутствует только в дополнительных файлах смещения датумов. Установка файлов смещения датумов сейчас проще, чем поиск причин ошибки из-за их отсутствия позже.
[2] В частности, GeoDjango поддерживает библиотеку OGR, компонент GDAL.

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

Spec-Zone.ru

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