Установка GeoDjango

Предварительный просмотр

В общем, для установки GeoDjango требуется:

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

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

Использование исходного кода

Поскольку 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 ГЕОС, ГДАЛ 5.6.1+ Ограниченная функциональность .
оракул ГЕОС, ГДАЛ 12.2+ XE не поддерживается.
SQLite GEOS, GDAL, PROJ.4, SpatiaLite 3.8.3+ Требуется SpatiaLite 4.3+

См. Также эту сравнительную матрицу в OSGeo Wiki, где описаны возможные комбинации PostgreSQL / PostGIS / GEOS / GDAL.

Установка

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

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

Настройка DATABASES

Установите настройку ENGINE на один из космических двигателей .

Добавление django.contrib.gis в INSTALLED_APPS

Как и с другими приложениями , поступивших в Django, просто добавьте django.contrib.gis к INSTALLED_APPS в настройках. Это для того, чтобы gis можно было обнаружить шаблоны ; в противном случае некоторые функции, такие как интерфейс географического администрирования или карты сайта KML, не будут работать правильно.

Устранение неполадок

Если вы не можете найти решение своей проблемы на этой странице, присоединяйтесь к сообществу! Ты можешь :

  • Присоединяйтесь к каналу IRC #geodjango на Freenode. Будьте терпеливы и вежливы; даже если вы не получите немедленного ответа, кто-нибудь попытается ответить на ваш вопрос, когда прочитает его.
  • Задайте свой вопрос в списке рассылки GeoDjango .
  • Создайте тикет в трассировке Django, если считаете, что есть ошибка. Обязательно укажите полное описание проблемы, используемые версии и укажите компонент «ГИС».

Настройки среды библиотеки

Самая распространенная проблема при установке 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 ctypes может не найти библиотеку, даже если путь к библиотеке задан правильно и геопространственные библиотеки были успешно скомпилированы.

Пакет binutils можно установить в системах Debian и Ubuntu с помощью следующей команды:

$ sudo apt-get install binutils

Аналогичным образом в системах Red Hat и CentOS:

$ sudo yum install binutils

Инструкции для определенных платформ

macOS

Из-за разнообразия систем упаковки, доступных для macOS, существуют разные варианты установки GeoDjango. Вот эти варианты:

Этот раздел также включает инструкции по установке обновленной версии Python из пакетов, предоставленных Python Software Foundation, но это не является обязательным требованием.

Python

Несмотря на то, что Python предварительно установлен в macOS, его можно переустановить с помощью пакетов, предоставленных 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 предоставляет «рецепты» для компиляции двоичных файлов и пакетов из исходного кода. Он предоставляет рецепты для необходимых компонентов GeoDjango на компьютерах Macintosh под управлением macOS. Поскольку Homebrew компилирует программное обеспечение из исходного кода, Xcode необходим.

В итоге :

$ brew install postgresql
$ brew install postgis
$ brew install gdal
$ brew install libgeoip

Пакеты KyngChaos

William Kyngesburye предоставляет ряд пакетов двоичных геопространственных библиотек, которые помогают установить GeoDjango на macOS без необходимости компилировать их из исходного кода. Однако Xcode по-прежнему требуется для того, чтобы иметь возможность скомпилировать адаптеры базы данных Python psycopg2 (для PostGIS).

Заметка

Пользователи 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 , следуйте инструкциям по установке, чтобы установить его.

Финк

Курт Швер любезно создал пакеты 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

Окна

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

Python

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

PostgreSQL

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

Заметка

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

Когда установщик завершит работу, он спросит: «Запустить Stack Builder при выходе? - оставьте это отмеченным, так как это необходимо для установки PostGIS .

Заметка

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

PostGIS

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

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

OSGeo4W

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

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

Чтобы использовать GeoDjango, вам необходимо добавить каталоги OSGeo4W в систему Windows Path , а также переменные create GDAL_DATA и PROJ_LIB environment. Следующий набор команд, выполняемых с помощью 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

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

pip install psycopg2

Сноски

[1]GeoDjango использует подпрограмму find_library() из ctypes.util найти разделяемые библиотеки.

Copyright ©2020 All rights reserved