Spec-Zone.ru › Django 5.2

Установка 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

14+

Требуется PostGIS.

MySQL

GEOS, GDAL

8.0.11+

Ограниченные функциональные возможности.

Oracle

GEOS, GDAL

19+

XE не поддерживается.

SQLite

GEOS, GDAL, PROJ, SpatiaLite

3.31.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, не будут работать должным образом.

Отладка

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

  • Задать свой вопрос на форуме 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, Python's ctypes может не найти вашу библиотеку, даже если путь к библиотеке настроен правильно, и геопространственные библиотеки были скомпилированы идеально.

Пакет 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

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

MacPorts

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

Резюме:

$ sudo port install postgresql14-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/postgresql14/bin

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

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

Windows

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

Python

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

PostgreSQL

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

Примечание

Инсталлятор PostgreSQL создает нового суперпользователя базы данных postgres. Вас попросят установить пароль — обязательно запомните его!

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

Примечание

При успешной установке сервер PostgreSQL будет выполняться в фоновом режиме каждый раз при запуске системы в качестве службы Windows. Будет создана группа меню «PostgreSQL 15», содержащая ярлыки для Application 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 и запустите его. Выберите Установить веб-GIS Express и нажмите «Далее». В списке «Выбрать пакеты» убедитесь, что 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.2/ref/contrib/gis/install/index/

Spec-Zone.ru

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