Spec-Zone.ru › Django 5.1

Установка 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 13+ Требуется 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-системе, то 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

Kurt Schwehr любезно подготовил пакеты 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, содержащая ярлыки для 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 и запустите его. Выберите Express Web-GIS Install и нажмите Далее. В списке «Выбрать пакеты» убедитесь, что 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.1/ref/contrib/gis/install/index/

Spec-Zone.ru

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