Spec-Zone.ru › Django 1.10

Установка GeoDjango

Обзор

В общем случае, для установки GeoDjango необходимо:

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

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

  • Mac OS X
  • Windows

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

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

Требования

Python и Django

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

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

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

Примечание

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

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

База данных Требования к библиотекам Поддерживаемые версии Примечания
PostgreSQL GEOS, PROJ.4, PostGIS 9.2+ Требуется PostGIS.
MySQL GEOS 5.5+ Не соответствует OGC; ограниченные возможности.
Oracle GEOS 11.2+ XE не поддерживается.
SQLite GEOS, GDAL, PROJ.4, SpatiaLite 3.6.+ Требуется SpatiaLite 3.0+, pysqlite2 2.5+

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

Установка

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

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

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

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

Добавьте 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. Как администратор, добавьте пользовательский путь к библиотекам (например, /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

Инструкции, специфичные для платформы

Mac OS X

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

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

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

Python

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

Примечание

Вам необходимо изменить переменную среды 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-компьютерах под управлением OS X. Поскольку Homebrew по-прежнему создаёт программное обеспечение из исходного кода, требуются Apple Developer Tools.

Резюме:

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

Пакеты KyngChaos

Компания William Kyngesburye предоставляет ряд бинарных пакетов геопространственной библиотеки, которые упрощают установку GeoDjango на OS X без компиляции из исходного кода. Однако для компиляции адаптеров баз данных Python psycopg2 (для PostGIS) и pysqlite2 (для SpatiaLite) всё ещё необходимы инструменты разработчика Apple.

Примечание

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

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

  • 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 компонентов на Macintosh компьютеры под управлением OS X. Поскольку MacPorts всё ещё компилирует программное обеспечение из исходного кода, требуются инструменты разработчика Apple.

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

$ 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. Вас попросят установить пароль для обеих учётных записей — обязательно запомните его!

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

Примечание

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

PostGIS

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

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

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

set OSGEO4W_ROOT=C:\OSGeo4W
set PYTHON_ROOT=C:\Python27
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%"

Для удобства эти команды доступны в исполняемом пакетном скрипте geodjango_setup.bat.

Примечание

Для выполнения этих команд требуются права администратора. Для этого щелкните правой кнопкой мыши на geodjango_setup.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/1.10/ref/contrib/gis/install/index/

Spec-Zone.ru

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