Установка геопространственных библиотек¶
GeoDjango использует и/или предоставляет интерфейсы для следующих геопространственных библиотек с открытым исходным кодом:
Программа | Описание | Требуется | Поддерживаемые версии |
---|---|---|---|
GEOS | Geometry Engine с открытым исходным кодом | Да | 3.7, 3.6, 3.5, 3.4 |
PROJ.4 | Библиотека картографических проекций | Да (только PostgreSQL и SQLite) | 5.2, 5.1, 5.0, 4.x |
GDAL | Библиотека абстракции геопространственных данных | Да | 2.3, 2.2, 2.1, 2.0, 1.11 |
GeoIP | Библиотека геолокации на основе IP | Нет | 2 |
PostGIS | Пространственные расширения для PostgreSQL | Да (только для PostgreSQL) | 2.5, 2.4, 2.3, 2.2, 2.1 |
SpatiaLite | Пространственные расширения для SQLite | Да (только для SQLite) | 4.3, 4.2, 4.1 |
Обратите внимание, что старые или более новые версии этих библиотек могут также прекрасно работать с 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, запустите сценарий 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 находится в нестандартном месте или вы не хотите изменять системный путь к библиотеке, то в файл настроек 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.
ПРОЕКТ.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 ..
Наконец, настройте, сделайте и установите PROJ.4:
$ ./configure
$ make
$ sudo make install
$ cd ..
GDAL¶
GDAL - это отличная геопространственная библиотека с открытым исходным кодом, которая поддерживает чтение большинства векторных и растровых форматов пространственных данных. В настоящее время GeoDjango поддерживает только GDAL’s vector data возможности [2]. GEOS и ПРОЕКТ.4 должны быть установлены до сборки 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, предыдущие инструкции не создают собственные привязки GDAL к Python. Связки могут быть созданы путем добавления флага --with-python
при выполнении configure
. Более подробную информацию о связках GDAL смотрите в GDAL/OGR In Python.
Если у вас возникли какие-либо проблемы, обратитесь к разделу «Поиск и устранение неисправностей», где приведены предложения и решения.
Устранение неполадок¶
Не удается найти библиотеку 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 projection (900913 or 3857) требуется файл сетки null , включенный только в дополнительные файлы сдвига точек отсчета. Проще установить файлы сдвига сейчас, чем потом отлаживать проблему, вызванную их отсутствием. |
[2] | В частности, GeoDjango обеспечивает поддержку библиотеки OGR, компонента GDAL. |