Spec-Zone.ru › Django 4.0

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

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

ПрограммаОписаниеНеобходимоПоддерживаемые версии
GEOSGeometry Engine Open SourceДа3.10, 3.9, 3.8, 3.7, 3.6
PROJБиблиотека картографических проекцийДа (только PostgreSQL и SQLite)8.x, 7.x, 6.x, 5.x, 4.x
GDALGeospatial Data Abstraction LibraryДа3.3, 3.2, 3.1, 3.0, 2.4, 2.3, 2.2, 2.1
GeoIPБиблиотека геолокации на основе IP-адресовНет2
PostGISРасширения для пространственных данных PostgreSQLДа (только PostgreSQL)3.1, 3.0, 2.5, 2.4
SpatiaLiteРасширения для пространственных данных SQLiteДа (только SQLite)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, выполните скрипт конфигурации, скомпилируйте и установите:

$ 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 находится в нестандартном месте или вы не хотите изменять системный путь к библиотекам, то вы можете добавить настройку GEOS_LIBRARY_PATH в ваш файл настроек Django с полным путем к библиотеке 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 (используйте подкаталог nad для PROJ < 6.x). Это необходимо сделать до конфигурации:

$ 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/OGR в Python для получения дополнительной информации о связующих GDAL.

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

Отладка

Не могу найти библиотеку 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/4.0/ref/contrib/gis/install/geolibs/

Spec-Zone.ru

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