• 3.1
  • 3.2
  • 5.0
  • Версия документации: 6.1

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

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

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

Программа

Описание

Необходимый

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

GEOS

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

Да

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

ПРОЕКТ

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

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

9.х, 8.х, 7.х, 6.х

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

ПостГИС

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

Да (только PostgreSQL)

3.5, 3.4, 3.3, 3.2, 3.1

СпатиаЛайт

Пространственные расширения для 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 или Окна.

Сборка из исходников

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

Примечание

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

$ sudo make install
$ sudo ldconfig

Примечание

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

ГЕОС

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:

$ 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 — отличная геопространственная библиотека с открытым исходным кодом, поддерживающая чтение большинства векторных и растровых форматов пространственных данных. В настоящее время GeoDjango поддерживает только возможности векторных данных GDAL <gdal_vector_data>` [2]. ГЕОС и ПРОДЖ должны быть установлены до сборки 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 находится в нестандартном расположении или вы не хотите изменять путь к системной библиотеке, тогда в ваш файл настроек Django можно добавить параметр GDAL_LIBRARY_PATH с полным путем к библиотеке GDAL. Например:

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

Сноски

Back to Top