Spec-Zone.ru › Django 5.0

Установка GeoDjango

Обзор

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

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

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

  • macOS
  • Windows

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

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

Требования

Python и Django

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

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

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

Примечание

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

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

База данных Требования к библиотекам Поддерживаемые версии Примечания
PostgreSQL GEOS, GDAL, PROJ, PostGIS 12+ Требуется PostGIS.
MySQL GEOS, GDAL 8.0.11+ Ограниченная функциональность.
Oracle GEOS, GDAL 19+ XE не поддерживается.
SQLite GEOS, GDAL, PROJ, SpatiaLite 3.27.0+ Требуется SpatiaLite 4.3+

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

Установка

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

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

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

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

DATABASES настройка

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

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

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

Отладка

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

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

Настройки окружения библиотек

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

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

LD_LIBRARY_PATH переменная окружения

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

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

Платформоспецифические инструкции

macOS

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

  • Postgres.app (наиболее простой и рекомендуемый)
  • Homebrew
  • 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
Fink

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

MacPorts

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

Резюме:

$ sudo port install postgresql13-server
$ sudo port install geos
$ sudo port install proj6
$ sudo port install postgis3
$ sudo port install gdal
$ sudo port install libgeoip

Примечание

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

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

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

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

Windows

Выполняйте следующие разделы последовательно, чтобы установить GeoDjango на Windows. В этом учебнике мы будем устанавливать 64-разрядные версии каждого приложения.

Python

Установите 64-разрядную версию Python. См. Установить Python для получения дополнительной информации.

PostgreSQL

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

Примечание

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

После завершения установки установщик спросит «Запустить Stack Builder при выходе?» — оставьте это отмеченным, так как это необходимо для установки PostGIS.

Примечание

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

PostGIS

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

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

OSGeo4W

Инсталлятор OSGeo4W помогает установить библиотеки PROJ, GDAL и GEOS, необходимые для GeoDjango. Сначала загрузите инсталлятор OSGeo4W и запустите его. Выберите Установка Express Web-GIS и нажмите «Далее». В списке «Выбрать пакеты» убедитесь, что выбран GDAL. Если какие-либо другие пакеты включены по умолчанию, они не требуются GeoDjango и могут быть безопасно отключены. После нажатия «Далее» и принятия лицензионных соглашений пакеты будут автоматически загружены и установлены, после чего вы можете выйти из установщика.

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

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

set OSGEO4W_ROOT=C:\OSGeo4W
set GDAL_DATA=%OSGEO4W_ROOT%\apps\gdal\share\gdal
set PROJ_LIB=%OSGEO4W_ROOT%\share\proj
set PATH=%PATH%;%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%"

Примечание

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

Примечание

Если вы изменили каталоги установки OSGeo4W, вам потребуется соответственно изменить переменные OSGEO4W_ROOT.

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

Установить Django на вашей системе. Рекомендуется создавать виртуальную среду виртуальной среды для каждого создаваемого проекта.

psycopg

Модуль Python psycopg предоставляет интерфейс между Python и базой данных PostgreSQL. psycopg можно установить через pip в вашей виртуальной среде Python:

...\> py -m pip install psycopg

Примечания

[1] GeoDjango использует функцию find_library() из ctypes.util для поиска общих библиотек.

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

Spec-Zone.ru

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