Spec-Zone.ru › Django 3.2

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

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

Программа Описание Требуется Поддерживаемые версии
GEOS Геометрический движок с открытым исходным кодом Да 3.9, 3.8, 3.7, 3.6, 3.5
PROJ Библиотека картографических проекций Да (только PostgreSQL и SQLite) 7.x, 6.x, 5.x, 4.x
GDAL Библиотека абстракции геопространственных данных Да 3.2, 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
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 расположена в нестандартном месте или вы не хотите изменять системный путь к библиотеке, то в файл настроек 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:

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

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
$ 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 см. в GDAL/OGR In Python.

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

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

Не удается найти библиотеку 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/3.2/ref/contrib/gis/install/geolibs/

Spec-Zone.ru

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