Spec-Zone.ru › Django 3.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.5+ Требуется PostGIS.
MySQL GEOS, GDAL 5.6.1+ Ограниченные возможности.
Oracle GEOS, GDAL 12.2+ XE не поддерживается.
SQLite GEOS, GDAL, PROJ.4, SpatiaLite 3.8.3+ Требуется SpatiaLite 4.3+

См. также эту сравнительную матрицу на Wiki 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 можно установить, используя следующую команду:

$ python -m 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 помогает установить необходимые для GeoDjango библиотеки PROJ.4, GDAL и GEOS. Сначала загрузите инсталлятор OSGeo4W и запустите его. Выберите Установить Express Web-GIS и нажмите «Далее». В списке «Выбрать пакеты» убедитесь, что выбран 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:\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/3.0/ref/contrib/gis/install/index/

Spec-Zone.ru

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