Spec-Zone.ru › Django 3.1

Установка GeoDjango

Обзор

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

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

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

  • macOS
  • Windows

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

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

Требования

Python и Django

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

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

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

Примечание

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

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

База данных Требования к библиотекам Поддерживаемые версии Примечания
PostgreSQL GEOS, GDAL, PROJ.4, PostGIS 9.5+ Требуется PostGIS.
MySQL GEOS, GDAL 5.6.1+ Ограниченные возможности.
Oracle GEOS, GDAL 12.2+ XE не поддерживается.
SQLite GEOS, GDAL, PROJ.4, SpatiaLite 3.8.3+ Требуется 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 IRC на Freenode. Будьте терпеливы и вежливы – хотя вы можете не получить мгновенного ответа, кто-то попытается ответить на ваш вопрос, как только увидит его.
  • Задайте свой вопрос на списке рассылки 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
  • Пакеты 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 postgresql93-server
$ sudo port install geos
$ sudo port install proj
$ sudo port install postgis
$ sudo port install gdal +geos
$ sudo port install libgeoip

Примечание

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

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

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

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

Windows

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

Python

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

PostgreSQL

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

Примечание

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

После завершения установки установщик спросит: «Запустить 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 помогает установить библиотеки PROJ, GDAL и GEOS, необходимые для GeoDjango. Сначала загрузите установщик OSGeo4W (64-разрядный) и запустите его. Выберите Установка Express Web-GIS и нажмите Далее. В списке «Выбор пакетов» убедитесь, что GDAL выбран; MapServer также включен по умолчанию, но для GeoDjango не требуется и может быть безопасно снят с выбора. После нажатия Далее и принятия лицензионных соглашений пакеты будут автоматически загружены и установлены, после чего вы можете выйти из установщика.

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

Для использования GeoDjango вам нужно добавить каталоги OSGeo4W в вашу систему Windows Path, а также создать переменные среды 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:

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/3.1/ref/contrib/gis/install/index/

Spec-Zone.ru

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