Установка геопространственных библиотек
Геопространственные библиотеки
GeoDjango использует и/или предоставляет интерфейсы для следующих геопространственных библиотек с открытым исходным кодом:
Программа | Описание | Обязательна | Поддерживаемые версии |
|---|---|---|---|
Библиотека геометрических операций с открытым исходным кодом | Да | 3.14, 3.13, 3.12, 3.11, 3.10, 3.9, 3.8 | |
Библиотека картографических проекций | Да (только для PostgreSQL и SQLite) | 9.x, 8.x, 7.x, 6.x | |
Библиотека абстракции геопространственных данных | Да | 3.11, 3.10, 3.9, 3.8, 3.7, 3.6, 3.5, 3.4, 3.3, 3.2, 3.1 | |
Библиотека геолокации на основе 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 или 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 < 7.x загрузите proj-datumgrid-X.Y.tar.gz) [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 (см. RFC-7 PROJ).
Чтобы выполнить сборку с помощью 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]. Перед сборкой GDAL необходимо установить GEOS и PROJ.
Сначала загрузите последнюю версию 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'
Сноски
© Django Software Foundation and individual contributors
Licensed under the BSD License.
https://docs.djangoproject.com/en/6.0/ref/contrib/gis/install/geolibs/