Spec-Zone.ru › Django 6.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

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 Wiki с возможными сочетаниями PostgreSQL/PostGIS/GEOS/GDAL.

Установка

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

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

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

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

DATABASES configuration

Установите параметр 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. С правами суперпользователя добавьте пользовательский путь к библиотекам (например, /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. Поэтому, если в вашей системе Linux не установлен binutils, 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

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

Примечание

Чтобы при вводе python в командной строке использовалась новая версия Python, необходимо изменить переменную окружения PATH в файле .profile:

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 предоставляет «рецепты» для сборки бинарных файлов и пакетов из исходного кода. Для компьютеров Macintosh под управлением macOS доступны рецепты для зависимостей GeoDjango. Поскольку 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 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 при выходе?» — оставьте этот флажок установленным, поскольку 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 for PostgreSQL 15.

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

OSGeo4W

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

Изменение окружения Windows

Для работы с GeoDjango необходимо добавить каталоги OSGeo4W в системную переменную Path Windows, а также создать переменные окружения 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/6.0/ref/contrib/gis/install/index/

Spec-Zone.ru

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