Spec-Zone.ru › Django 2.0

Установка 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.3+ Требуется PostGIS.
MySQL GEOS, GDAL 5.5+ Не соответствует OGC; ограниченные возможности.
Oracle GEOS, GDAL 12.1+ XE не поддерживается.
SQLite GEOS, GDAL, PROJ.4, SpatiaLite 3.6.+ Требуется SpatiaLite 4.0+

См. также эту сравнительную матрицу на вики-сайте OSGeo для возможных комбинаций 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. Например, пользователь может поместить следующее в свой профиль bash:

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 без компиляции из исходного кода. Однако, для компиляции адаптеров Python для баз данных psycopg2 (для PostGIS) всё ещё необходим Xcode.

Примечание

Пользователи 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 и запустите его. Выберите Установка Express Web-GIS и нажмите «Далее». В списке «Выбор пакетов» убедитесь, что GDAL выбран; MapServer и Apache также включены по умолчанию, но не требуются GeoDjango и могут быть безопасно сняты. После нажатия «Далее» пакеты будут автоматически загружены и установлены, после чего вы можете выйти из установщика.

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

Для использования GeoDjango необходимо добавить каталоги Python и OSGeo4W в переменные среды системы Windows, а также создать переменные среды 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.0/ref/contrib/gis/install/index/

Spec-Zone.ru

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