Spec-Zone.ru › Django 5.2

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

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

Программа

Описание

Требуется

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

GEOS

Геометрический движок с открытым исходным кодом

Да

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.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.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

При невозможности найти GEOS в GeoDjango, возникает эта ошибка:

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

Если ваша библиотека 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-datumgrid-X.Y.tar.gz для PROJ < 7.x) [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 (см. PROJ RFC-7).

Для сборки с 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]. GEOS и PROJ должны быть установлены перед сборкой 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

Для 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 находится в нестандартном месте или вы не хотите изменять системный путь к библиотекам, то настройку GDAL_LIBRARY_PATH можно добавить в ваш файл настроек Django со полным путем к библиотеке 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/5.2/ref/contrib/gis/install/geolibs/

Spec-Zone.ru

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