Установка геопространственных библиотек
GeoDjango использует и/или предоставляет интерфейсы для следующих открытых геопространственных библиотек:
Программа | Описание | Требуется | Поддерживаемые версии |
|---|---|---|---|
Геометрический движок с открытым исходным кодом | Да | 3.13, 3.12, 3.11, 3.10, 3.9, 3.8 | |
Библиотека картографических проекций | Да (только PostgreSQL и SQLite) | 9.x, 8.x, 7.x, 6.x | |
Библиотека абстракции геопространственных данных | Да | 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.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
При невозможности найти GEOS в GeoDjango, возникает эта ошибка:
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
Если ваша библиотека 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. Это необходимо сделать до конфигурации:
$ 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
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
Наконец, сконфигурируйте, создайте и установите GDAL:
$ cmake .. $ cmake --build . $ sudo cmake --build . --target install
Если у вас возникнут проблемы, см. раздел по устранению неполадок ниже для предложений и решений.
Устранение неполадок
Не удаётся найти библиотеку GDAL
Когда GeoDjango не может найти библиотеку GDAL, настройте свои настройки среды библиотек или установите GDAL_LIBRARY_PATH в своих настройках.
GDAL_LIBRARY_PATH
Если ваша библиотека GDAL находится в нестандартном месте или вы не хотите изменять системный путь к библиотекам, то настройку GDAL_LIBRARY_PATH можно добавить в ваш файл настроек Django со полным путем к библиотеке 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/5.2/ref/contrib/gis/install/geolibs/