Spec-Zone.ru › Django 4.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 10+ Требуется PostGIS.
MySQL GEOS, GDAL 5.7+ Ограниченные возможности.
Oracle GEOS, GDAL 19+ XE не поддерживается.
SQLite GEOS, GDAL, PROJ, SpatiaLite 3.9.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-карты сайта, не будут работать должным образом.

Отладка

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

  • Присоединиться к каналу IRC #django-geo на 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. Как 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 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 12.x с веб-сайта EnterpriseDB. После загрузки запустите инсталлятор, следуйте инструкциям на экране и сохраняйте стандартные параметры, если вы не знаете последствий их изменения.

Примечание

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

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

Примечание

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

PostGIS

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

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

OSGeo4W

Инсталлятор OSGeo4W помогает установить необходимые для GeoDjango библиотеки PROJ, GDAL и GEOS. Сначала загрузите инсталлятор OSGeo4W (64-битный) и запустите его. Выберите Быстрая установка веб-ГИС и нажмите «Далее». В списке «Выбрать пакеты» убедитесь, что выбран GDAL; MapServer также включен по умолчанию, но не требуется GeoDjango и его можно безопасно отключить. После нажатия «Далее» и принятия лицензионных соглашений, пакеты будут автоматически загружены и установлены, после чего вы можете выйти из инсталлятора.

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

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

set OSGEO4W_ROOT=C:\OSGeo4W64
set GDAL_DATA=%OSGEO4W_ROOT%\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%"

Примечание

Предполагается, что установлена 64-битная версия OSGeo4W. Если вы установили 32-битную версию, вам необходимо изменить первую команду на set OSGEO4W_ROOT=C:\OSGeo4W.

Примечание

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

Примечание

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

Установка Django и настройка базы данных

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

psycopg2

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

...\> py -m pip install psycopg2

Примечания

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

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

Spec-Zone.ru

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