Spec-Zone.ru › Django 2.1

Установка GeoDjango

Обзор

В целом, установка GeoDjango требует:

  1. Python и Django
  2. Пространственная база данных
  3. Установка геопространственных библиотек

Подробная информация по каждому из требований и инструкции по установке приведены в разделах ниже. Кроме того, доступны инструкции для платформ:

  • macOS
  • Windows

Используйте исходный код

Поскольку GeoDjango использует новейшие технологии открытого геопространственного программного обеспечения, необходимы последние версии библиотек. Если для вашей платформы нет бинарных пакетов, может потребоваться установка из исходного кода. При компиляции библиотек из исходного кода, пожалуйста, следуйте инструкциям, особенно если вы новичок.

Требования

Python и Django

Поскольку GeoDjango включен в Django, обратитесь к инструкциям по установке Django для получения подробностей.

Пространственная база данных

В настоящее время поддерживаются пространственные базы данных: PostgreSQL (с PostGIS), MySQL (в основном с движком MyISAM), Oracle и SQLite (с SpatiaLite).

Примечание

PostGIS рекомендуется, потому что это самая зрелая и функционально богатая открытая пространственная база данных.

Геопространственные библиотеки, необходимые для установки GeoDjango, зависят от используемой пространственной базы данных. Ниже приведен список требований к библиотекам, поддерживаемые версии и примечания для каждого из поддерживаемых бэкэндов баз данных:

База данных Требования к библиотекам Поддерживаемые версии Примечания
PostgreSQL GEOS, GDAL, PROJ.4, PostGIS 9.4+ Требуется PostGIS.
MySQL GEOS, GDAL 5.6+ Не соответствует OGC; ограниченная функциональность.
Oracle GEOS, GDAL 12.1+ XE не поддерживается.
SQLite GEOS, GDAL, PROJ.4, SpatiaLite 3.7.15+ Требуется SpatiaLite 4.1+

См. также эту сравнительную матрицу на сайте OSGeo Wiki для возможных комбинаций PostgreSQL/PostGIS/GEOS/GDAL.

Установка

Геопространственные библиотеки

  • Установка геопространственных библиотек

Установка базы данных

  • Установка PostGIS
  • Установка SpatiaLite

DATABASES настройка

Установите параметр ENGINE на один из пространственных бэкэндов.

Добавить django.contrib.gis в INSTALLED_APPS

Как и другие приложения Django contrib, вам только нужно добавить django.contrib.gis в INSTALLED_APPS в вашем файле настроек. Это необходимо, чтобы шаблоны gis могли быть найдены — в противном случае такие функции, как географический администратор или KML-карты сайта, не будут работать должным образом.

Устранение неполадок

Если вы не можете найти решение своей проблемы здесь, участвуйте в сообществе! Вы можете:

  • Присоединиться к каналу #geodjango IRC на Freenode. Пожалуйста, будьте терпеливы и вежливы — хотя вы можете не получить немедленного ответа, кто-то попытается ответить на ваш вопрос, как только увидит его.
  • Задать свой вопрос на почтовой рассылке GeoDjango.
  • Создать билет на Django trac, если считаете, что есть ошибка. Убедитесь, что вы предоставили полное описание проблемы, используемые версии и указали компонент как «GIS».

Настройки среды библиотек

Самая распространённая проблема при установке GeoDjango заключается в том, что внешние общие библиотеки (например, для GEOS и GDAL) не могут быть найдены. [1] Обычно причиной этой проблемы является то, что операционная система не знает, где были установлены библиотеки, созданные из исходного кода.

В целом, путь к библиотекам может настраиваться на уровне пользователя путём установки переменной среды или путём настройки пути к библиотекам для всей системы.

LD_LIBRARY_PATH переменная среды

Пользователь может установить эту переменную среды, чтобы настроить пути к библиотекам, которые он хочет использовать. Типичный каталог библиотек для программного обеспечения, созданного из исходного кода, это /usr/local/lib. Таким образом, /usr/local/lib должен быть включён в переменную LD_LIBRARY_PATH. Например, пользователь может добавить следующее в свой файл .bashrc:

export LD_LIBRARY_PATH=/usr/local/lib

Настройка системного пути к библиотекам

В системах GNU/Linux обычно есть файл в /etc/ld.so.conf, который может включать дополнительные пути из файлов в другом каталоге, например, /etc/ld.so.conf.d. Как root-пользователь, добавьте пользовательский путь к библиотекам (например, /usr/local/lib) в новую строку файла ld.so.conf. Это один пример, как это сделать:

$ sudo echo /usr/local/lib >> /etc/ld.so.conf
$ sudo ldconfig

Для пользователей OpenSolaris, системный путь к библиотекам можно изменить с помощью утилиты crle. Выполните crle без опций, чтобы увидеть текущую конфигурацию, и используйте crle -l для установки нового пути к библиотекам. Будьте очень осторожны при изменении системного пути к библиотекам:

# crle -l $OLD_PATH:/usr/local/lib

Установить binutils

GeoDjango использует функцию find_library (из модуля Python ctypes.util), чтобы обнаружить библиотеки. Функция find_library использует программу под названием objdump (часть пакета binutils) для проверки общей библиотеки в системах GNU/Linux. Таким образом, если binutils не установлен в вашей системе Linux, ctypes Python может не найти вашу библиотеку, даже если путь к вашей библиотеке настроен правильно, и геопространственные библиотеки были скомпилированы без ошибок.

Пакет binutils может быть установлен в системах Debian и Ubuntu с помощью следующей команды:

$ sudo apt-get install binutils

Аналогично, в системах Red Hat и CentOS:

$ sudo yum install binutils

Инструкции для разных платформ

macOS

Из-за разнообразия систем пакетирования для macOS, у пользователей есть несколько разных вариантов установки GeoDjango. Эти варианты включают:

  • Postgres.app (самый простой и рекомендуемый)
  • Homebrew
  • Пакеты KyngChaos
  • Fink
  • MacPorts
  • Сборка из исходного кода

В этом разделе также приведены инструкции по установке обновлённой версии Python из пакетов, предоставленных Python Software Foundation, однако это необязательно.

Python

Хотя macOS поставляется с установленным Python, пользователи могут использовать инсталляторы фреймворка, предоставленные Python Software Foundation. Преимущество использования инсталлятора заключается в том, что Python macOS останется «нетронутым» для внутренних нужд операционной системы.

Примечание

Вам нужно будет изменить переменную среды PATH в вашем файле .profile, чтобы использовать новую версию Python, когда python будет введён в командной строке:

export PATH=/Library/Frameworks/Python.framework/Versions/Current/bin:$PATH

Postgres.app

Postgres.app — это автономный сервер PostgreSQL, который включает расширение PostGIS. Вам также необходимо установить gdal и libgeoip с помощью Homebrew.

После установки Postgres.app добавьте следующее в ваш .bash_profile файл, чтобы вы могли запускать программы пакета из командной строки. Замените X.Y на версию PostgreSQL в установленной вами Postgres.app:

export PATH=$PATH:/Applications/Postgres.app/Contents/Versions/X.Y/bin

Вы можете проверить, правильно ли настроен путь, введя which psql в командной строке.

Homebrew

Homebrew предоставляет «рецепты» для сборки бинарных файлов и пакетов из исходного кода. Он предоставляет рецепты для предварительных условий GeoDjango на Macintosh компьютерах, работающих под macOS. Поскольку Homebrew всё ещё собирает ПО из исходного кода, требуется Xcode.

Резюме:

$ brew install postgresql
$ brew install postgis
$ brew install gdal
$ brew install libgeoip

Пакеты KyngChaos

William Kyngesburye предоставляет ряд бинарных пакетов геопространственных библиотек, которые упрощают установку GeoDjango на macOS без компиляции из исходного кода. Однако, Xcode всё ещё необходим для компиляции адаптеров Python для баз данных psycopg2 (для PostGIS).

Примечание

Пользователям SpatiaLite следует обратиться к разделу инструкции для macOS после установки пакетов для получения дополнительных инструкций.

Загрузите пакеты фреймворка для:

  • UnixImageIO
  • PROJ
  • GEOS
  • SQLite3 (включает библиотеку SpatiaLite)
  • GDAL

Установите пакеты в порядке, указанном выше, поскольку пакеты GDAL и SQLite требуют пакетов, перечисленных перед ними.

После этого вы также можете установить бинарные пакеты KyngChaos для PostgreSQL и PostGIS.

После установки бинарных пакетов вам необходимо добавить следующее в .profile, чтобы иметь возможность запускать программы пакета из командной строки:

export PATH=/Library/Frameworks/UnixImageIO.framework/Programs:$PATH
export PATH=/Library/Frameworks/PROJ.framework/Programs:$PATH
export PATH=/Library/Frameworks/GEOS.framework/Programs:$PATH
export PATH=/Library/Frameworks/SQLite3.framework/Programs:$PATH
export PATH=/Library/Frameworks/GDAL.framework/Programs:$PATH
export PATH=/usr/local/pgsql/bin:$PATH
psycopg2

После установки бинарных файлов KyngChaos и внесения изменений в ваш PATH, как описано выше, psycopg2 можно установить с помощью следующей команды:

$ pip install psycopg2

Примечание

Если у вас нет pip, следуйте инструкциям по установке, чтобы установить его.

Fink

Kurt Schwehr любезно создал пакеты GeoDjango для пользователей системы пакетов Fink. Доступны разные пакеты (начиная с django-gis), в зависимости от используемой версии Python.

MacPorts

MacPorts можно использовать для установки необходимых для GeoDjango компонентов на компьютерах с macOS. Так как MacPorts всё ещё компилирует программное обеспечение из исходного кода, требуется Xcode.

Краткое описание:

$ sudo port install postgresql93-server
$ sudo port install geos
$ sudo port install proj
$ sudo port install postgis
$ sudo port install gdal +geos
$ sudo port install libgeoip

Примечание

Вам также нужно будет изменить PATH в вашем .profile, чтобы программы MacPorts были доступны из командной строки:

export PATH=/opt/local/bin:/opt/local/lib/postgresql93/bin

Кроме того, добавьте настройку DYLD_FALLBACK_LIBRARY_PATH, чтобы Python мог найти библиотеки:

export DYLD_FALLBACK_LIBRARY_PATH=/opt/local/lib:/opt/local/lib/postgresql93

Windows

Пройдите через следующие разделы последовательно, чтобы установить GeoDjango на Windows.

Python

Установите Python.

PostgreSQL

Сначала загрузите последнюю версию установщика PostgreSQL 9.x с сайта EnterpriseDB. После загрузки просто запустите установщик, следуйте инструкциям на экране и оставляйте значения по умолчанию, если вы не знаете последствий их изменения.

Примечание

Установщик PostgreSQL создаёт нового пользователя Windows для «пользователя службы postgres» и postgres пользователя базы данных с правами суперпользователя. Вас попросят один раз установить пароль для обеих учётных записей — обязательно запомните его!

После завершения установки установщик предложит запустить Application Stack Builder (ASB) — оставьте эту опцию включённой, так как она необходима для установки PostGIS.

Примечание

Если установщик успешно завершён, сервер PostgreSQL будет работать в фоновом режиме каждый раз при запуске системы как служба Windows. Будет создана группа меню «PostgreSQL 9.x», которая содержит ярлыки для ASB и «SQL Shell», которые запустят окно команд psql.

PostGIS

В Application Stack Builder (для запуска вне установщика, Пуск ‣ Программы ‣ PostgreSQL 9.x) выберите Сервер базы данных PostgreSQL 9.x на порту 5432 из раскрывающегося списка. Далее разверните дерево меню Категории ‣ Расширения пространственных данных и выберите PostGIS X.Y для PostgreSQL 9.x.

После нажатия «Далее» вам будет предложено выбрать зеркало, PostGIS будет загружен, и начнется установка PostGIS. Во время установки выберите только опции по умолчанию (например, не отключайте опцию создания базы данных PostGIS по умолчанию).

Примечание

Вам будет предложено ввести пароль postgres пользователя базы данных с правами суперпользователя в диалоговом окне «Сведения о подключении к базе данных».

psycopg2

Модуль Python psycopg2 предоставляет интерфейс между Python и базой данных PostgreSQL. Загрузите последний установщик Windows для вашей версии Python и PostgreSQL и запустите его, используя значения по умолчанию. [2]

OSGeo4W

Установщик OSGeo4W упрощает установку библиотек PROJ.4, GDAL и GEOS, необходимых для GeoDjango. Сначала загрузите установщик OSGeo4W и запустите его. Выберите Быстрая установка веб-ГИС и нажмите «Далее». В списке «Выбрать пакеты» убедитесь, что GDAL выбран; MapServer и Apache также включены по умолчанию, но не требуются для GeoDjango и могут быть безопасно отключены. После нажатия «Далее» пакеты будут автоматически загружены и установлены, после чего можно закрыть установщик.

Изменение среды Windows

Для использования GeoDjango вам необходимо добавить каталоги Python и OSGeo4W в вашу системную переменную Path, а также создать переменные среды GDAL_DATA и PROJ_LIB. Следующий набор команд, выполнимые с помощью cmd.exe, выполнит эту настройку:

set OSGEO4W_ROOT=C:\OSGeo4W
set PYTHON_ROOT=C:\Python3X
set GDAL_DATA=%OSGEO4W_ROOT%\share\gdal
set PROJ_LIB=%OSGEO4W_ROOT%\share\proj
set PATH=%PATH%;%PYTHON_ROOT%;%OSGEO4W_ROOT%\bin
reg ADD "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v Path /t REG_EXPAND_SZ /f /d "%PATH%"
reg ADD "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v GDAL_DATA /t REG_EXPAND_SZ /f /d "%GDAL_DATA%"
reg ADD "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v PROJ_LIB /t REG_EXPAND_SZ /f /d "%PROJ_LIB%"

Примечание

Для выполнения этих команд требуются права администратора. Для этого создайте скрипт bat с командами, щелкните его правой кнопкой мыши и выберите Запуск от имени администратора. Для того, чтобы изменения вступили в силу, необходимо выйти и снова войти в систему.

Примечание

Если вы изменили каталоги установки Python или OSGeo4W, вам необходимо соответствующим образом изменить переменные OSGEO4W_ROOT и/или PYTHON_ROOT.

Установить Django и настроить базу данных

Наконец, установите Django на вашей системе.

Примечания

[1] GeoDjango использует функцию find_library() из ctypes.util для поиска общих библиотек.
[2] Установщики psycopg2 Windows упакованы и поддерживаются Jason Erickson.

© Django Software Foundation and individual contributors
Licensed under the BSD License.
https://docs.djangoproject.com/en/2.1/ref/contrib/gis/install/index/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API