Установка геопространственных библиотек ¶
GeoDjango использует и предоставляет интерфейсы для следующих бесплатных геопространственных библиотек:
программа | Описание | необходимые | Поддерживаемые версии |
---|---|---|---|
GEOS | Geometry Engine с открытым исходным кодом | да | 3.8, 3.7, 3.6, 3.5 |
proj.4 | Библиотека картографических проекций | Да (только PostgreSQL и SQLite) | 6.3, 6.2, 6.1, 6.0, 5.x, 4.x |
GDAL | Библиотека | да | 3.1, 3.0, 2.4, 2.3, 2.2, 2.1, 2.0 |
GeoIP | Библиотека геолокации на основе IP | нет | 2 |
PostGIS | Пространственные расширения для PostgreSQL | Да (только PostgreSQL) | 3.0, 2.5, 2.4, 2.3, 2.2 |
SpatiaLite | Пространственные расширения для SQLite | Да (только SQLite) | 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 (за «отложенными» геометрическими объектами). В частности, API библиотеки C (например 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, и запустите сценарий «configure», скомпилируйте и установите:
$ 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.4 ¶
PROJ.4 - это библиотека для преобразования геопространственных данных в различные системы координат.
Сначала загрузите исходный код PROJ.4 и связанные файлы данных («файлы смещения датума») [1] :
$ wget https://download.osgeo.org/proj/proj-X.Y.Z.tar.gz
$ wget https://download.osgeo.org/proj/proj-datumgrid-X.Y.tar.gz
Затем разархивируйте архив исходного кода и извлеките дополнительные файлы данных в подкаталог nad
. Это необходимо сделать перед настройкой:
$ tar xzf proj-X.Y.Z.tar.gz
$ cd proj-X.Y.Z/nad
$ tar xzf ../../proj-datumgrid-X.Y.tar.gz
$ cd ..
Наконец, запустите «configure» и «make» и установите PROJ.4:
$ ./configure
$ make
$ sudo make install
$ cd ..
ГДАЛ ¶
GDAL - отличная бесплатная геопространственная библиотека, способная читать большинство векторных и растровых форматов пространственных данных. В настоящее время GeoDjango поддерживает только функции векторных данных GDAL [2] . Перед компиляцией GDAL необходимо установить GEOS и PROJ.4 .
Сначала загрузите последнюю выпущенную версию 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" и "install":
$ ./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.4 проекции Google (900913 или 3857) требуется файл сетки, null который находится только в файлах "смещения датума". Эти файлы проще установить сразу, чем устранять проблему, вызванную их отсутствием позже. |
[2] | В частности, GeoDjango обеспечивает поддержку библиотеки OGR , компонента GDAL. |