Установка геопространственных библиотек¶
GeoDjango использует и/или предоставляет интерфейсы для следующих геопространственных библиотек с открытым исходным кодом:
Программа | Описание | Требуется | Поддерживаемые версии |
---|---|---|---|
GEOS | Geometry Engine с открытым исходным кодом | Да | 3.12, 3.11, 3.10, 3.9, 3.8 |
PROJ | Библиотека картографических проекций | Да (только PostgreSQL и SQLite) | 9.x, 8.x, 7.x, 6.x, 5.x |
GDAL | Библиотека абстракции геопространственных данных | Да | 3.7, 3.6, 3.5, 3.4, 3.3, 3.2, 3.1, 3.0, 2.4 |
GeoIP | Библиотека геолокации на основе IP | Нет | 2 |
PostGIS | Пространственные расширения для PostgreSQL | Да (только для PostgreSQL) | 3.4, 3.3, 3.2, 3.1, 3.0, 2.5 |
SpatiaLite | Пространственные расширения для 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
.
См. также My logs are filled with GEOS-related errors.
ПРОЕКТ¶
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 9.x и выше релизы поддерживают только сборки с использованием CMake
(см. PROJ RFC-7).
Для сборки с использованием CMake
убедитесь, что ваша система соответствует требованиям build requirements. Затем создайте в каталоге PROJ папку build
и зайдите в нее:
$ cd proj-X.Y.Z
$ mkdir build
$ cd build
Наконец, сконфигурируйте, сделайте и установите PROJ:
$ cmake ..
$ cmake --build .
$ sudo cmake --build . --target install
GDAL¶
GDAL - это отличная геопространственная библиотека с открытым исходным кодом, которая поддерживает чтение большинства векторных и растровых форматов пространственных данных. В настоящее время GeoDjango поддерживает только GDAL’s vector data возможности [2]. GEOS и ПРОЕКТ должны быть установлены до сборки 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'
Сноски
[1] | Файлы сдвига точек отсчета необходимы для преобразования данных в определенные проекции и обратно. Например, для строки PROJ для Google projection (900913 or 3857) требуется файл сетки null , который входит только в дополнительные файлы сдвига точек отсчета. Проще установить файлы сдвига сейчас, чем потом отлаживать проблему, вызванную их отсутствием. |
[2] | В частности, GeoDjango обеспечивает поддержку библиотеки OGR, компонента GDAL. |