Spec-Zone.ru › Django 6.0

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

Геопространственные библиотеки

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

Программа

Описание

Обязательна

Поддерживаемые версии

GEOS

Библиотека геометрических операций с открытым исходным кодом

Да

3.14, 3.13, 3.12, 3.11, 3.10, 3.9, 3.8

PROJ

Библиотека картографических проекций

Да (только для PostgreSQL и SQLite)

9.x, 8.x, 7.x, 6.x

GDAL

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

Да

3.11, 3.10, 3.9, 3.8, 3.7, 3.6, 3.5, 3.4, 3.3, 3.2, 3.1

GeoIP

Библиотека геолокации на основе IP-адреса

Нет

2

PostGIS

Пространственные расширения для PostgreSQL

Да (только для PostgreSQL)

3.5, 3.4, 3.3, 3.2, 3.1

SpatiaLite

Пространственные расширения для SQLite

Да (только для SQLite)

5.1, 5.0, 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, создайте папку build и перейдите в неё:

$ cd geos-X.Y.Z
$ mkdir build
$ cd build

Затем соберите и установите пакет:

$ cmake -DCMAKE_BUILD_TYPE=Release ..
$ cmake --build .
$ sudo cmake --build . --target install

Устранение неполадок

Не удаётся найти библиотеку 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 находится в нестандартном расположении или вы не хотите изменять системный путь к библиотекам, в файл настроек Django можно добавить параметр GEOS_LIBRARY_PATH, указав полный путь к библиотеке GEOS C. Например:

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

Примечание

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

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

PROJ

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

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

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

… а также файлы преобразования датумов (для PROJ < 7.x загрузите proj-datumgrid-X.Y.tar.gz) [1]:

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

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

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

В PROJ 9.x и более поздних версиях сборки поддерживаются только с использованием CMake (см. RFC-7 PROJ).

Чтобы выполнить сборку с помощью CMake, убедитесь, что ваша система соответствует требованиям к сборке. Затем создайте папку build в каталоге PROJ и перейдите в неё:

$ cd proj-X.Y.Z
$ mkdir build
$ cd build

Наконец, настройте, соберите и установите PROJ:

$ cmake ..
$ cmake --build .
$ sudo cmake --build . --target install

GDAL

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

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

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

В GDAL 3.6.x и более поздних версиях сборки поддерживаются только с использованием CMake. Чтобы выполнить сборку с помощью CMake, создайте папку build в каталоге GDAL и перейдите в неё:

$ cd gdal-X.Y.Z
$ mkdir build
$ cd build

Наконец, настройте, соберите и установите GDAL:

$ cmake ..
$ cmake --build .
$ sudo cmake --build . --target install

Если у вас возникли проблемы, ознакомьтесь с приведённым ниже разделом об устранении неполадок, чтобы найти рекомендации и решения.

Устранение неполадок

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

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

GDAL_LIBRARY_PATH

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

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

Сноски

[1]

Файлы преобразования датумов необходимы для преобразования данных в некоторые проекции и обратно. Например, для строки PROJ проекции Google (900913 или 3857) требуется файл сетки null, который входит только в комплект дополнительных файлов преобразования датумов. Проще установить эти файлы заранее, чем позже разбираться с проблемой, возникшей из-за их отсутствия.

[2]

В частности, GeoDjango поддерживает библиотеку OGR, компонент GDAL.

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

Spec-Zone.ru

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