Spec-Zone.ru › Django 5.0

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

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

Программа Описание Необходимо Поддерживаемые версии
GEOS Геометрический движок с открытым исходным кодом Да 3.12, 3.11, 3.10, 3.9, 3.8
PROJ Библиотека картографических проекций Да (только PostgreSQL и SQLite) 9.x, 8.x, 7.x, 6.x, 5.x
GDAL Библиотека абстракции геопространственных данных Да 3.7, 3.6, 3.5, 3.4, 3.3, 3.2, 3.1, 3.0, 2.4
GeoIP Библиотека геолокации на основе IP-адресов Нет 2
PostGIS Расширения пространственных данных для PostgreSQL Да (только PostgreSQL) 3.4, 3.3, 3.2, 3.1, 3.0, 2.5
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-datumgrid-X.Y.tar.gz для PROJ < 7.x) [1]:

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

Далее, распакуйте архив исходного кода и извлеките файлы смещения датумов в подкаталоге data (для PROJ < 6.x используйте подкаталог nad). Это необходимо выполнить до конфигурации:

$ 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

Наконец, сконфигурируйте, выполните make и установите 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

Наконец, сконфигурируйте, выполните make и установите 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/5.0/ref/contrib/gis/install/geolibs/

Spec-Zone.ru

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