Установка GeoDjango¶
Обзор¶
В общем, для установки GeoDjango требуется:
Подробная информация по каждому из требований и инструкции по установке приведены в разделах ниже. Кроме того, имеются инструкции для конкретной платформы:
Используйте источник
Поскольку GeoDjango использует преимущества новейших технологий геопространственного программного обеспечения с открытым исходным кодом, необходимы последние версии библиотек. Если бинарные пакеты для вашей платформы недоступны, может потребоваться установка из исходного кода. При компиляции библиотек из исходного кода, пожалуйста, внимательно следуйте инструкциям, особенно если вы новичок.
Требования¶
Python и Django¶
Поскольку GeoDjango входит в состав Django, пожалуйста, обратитесь к разделу installation instructions Django для получения подробной информации о том, как установить.
Пространственная база данных¶
PostgreSQL (с PostGIS), MySQL (в основном с движком MyISAM), Oracle и SQLite (с SpatiaLite) - вот те пространственные базы данных, которые поддерживаются в настоящее время.
Примечание
Рекомендуется PostGIS, поскольку это наиболее зрелая и многофункциональная пространственная база данных с открытым исходным кодом.
Геопространственные библиотеки, необходимые для установки GeoDjango, зависят от используемой пространственной базы данных. Ниже перечислены требования к библиотекам, поддерживаемые версии и любые примечания для каждого из поддерживаемых бэкендов баз данных:
База данных | Требования к библиотеке | Поддерживаемые версии | Примечания |
---|---|---|---|
PostgreSQL | GEOS, GDAL, PROJ.4, PostGIS | 9.4+ | Требуется PostGIS. |
MySQL | ГЕОС, ГДАЛ | 5.6+ | Не соответствует OGC; limited functionality. |
Oracle | ГЕОС, ГДАЛ | 12.1+ | XE не поддерживается. |
SQLite | GEOS, GDAL, PROJ.4, SpatiaLite | 3.8.3+ | Требуется SpatiaLite 4.1+ |
См. также this comparison matrix на OSGeo Wiki о возможных комбинациях PostgreSQL/PostGIS/GEOS/GDAL.
Установка¶
Геопространственные библиотеки¶
Установка базы данных¶
DATABASES
конфигурация¶
Установите настройку ENGINE
в одно из значений spatial backends.
Добавьте django.contrib.gis
к INSTALLED_APPS
¶
Как и в других приложениях Django contrib, вам только нужно добавить django.contrib.gis
к INSTALLED_APPS
в настройках. Это необходимо для того, чтобы шаблоны gis
могли быть расположены - если этого не сделать, то такие функции, как географическая админка или KML карты сайта не будут работать должным образом.
Устранение неполадок¶
Если вы не можете найти решение своей проблемы здесь, тогда участвуйте в сообществе! Вы можете:
- Join the
#django-geo
IRC channel on Libera.Chat. Please be patient and polite – while you may not get an immediate response, someone will attempt to answer your question as soon as they see it. - Задайте свой вопрос в списке рассылки 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
(из модуля ctypes.util
Python) для обнаружения библиотек. Процедура 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
- Финк
- MacPorts
- Создание из исходного материала
Этот раздел также содержит инструкции по установке обновленной версии Python из пакетов, предоставленных Python Software Foundation, однако это не обязательно.
Python¶
Хотя macOS поставляется с установленным Python, пользователи могут использовать программу framework installers, предоставляемую 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 предоставляет ряд geospatial library binary packages, которые упрощают установку GeoDjango на macOS без компиляции из исходников. Однако, Xcode все еще необходим для компиляции адаптеров базы данных Python psycopg2 (для PostGIS).
Примечание
Пользователи SpatiaLite должны обратиться к разделу инструкции, специфичные для macOS после установки пакетов для получения дополнительных инструкций.
Загрузите пакеты фреймворка для:
- UnixImageIO
- ПРОЕКТ
- GEOS
- SQLite3 (включает библиотеку SpatiaLite)
- GDAL
Установите пакеты в порядке их перечисления, так как пакеты GDAL и SQLite требуют пакетов, перечисленных перед ними.
После этого вы также можете установить бинарные пакеты KyngChaos для PostgreSQL and 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
может быть установлен с помощью следующей команды:
$ pip install psycopg2
Примечание
Если у вас нет pip
, следуйте инструкциям installation instructions для его установки.
Финк¶
Kurt Schwehr был достаточно любезен, чтобы создать пакеты GeoDjango для пользователей системы пакетов Fink. Different packages are available (начиная с 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 последовательно выполните следующие разделы.
Python¶
PostgreSQL¶
Сначала загрузите последнюю версию PostgreSQL 9.x installer с сайта EnterpriseDB. После загрузки просто запустите программу установки, следуйте указаниям на экране и сохраните параметры по умолчанию, если не знаете последствий их изменения.
Примечание
Программа установки PostgreSQL создает как нового пользователя Windows, который будет „postgres service account“, так и суперпользователя базы данных postgres
Вам будет предложено один раз задать пароль для обеих учетных записей - убедитесь, что вы его запомнили!
Когда программа установки завершится, она попросит запустить Application Stack Builder (ASB) при выходе - проверьте это, так как это необходимо для установки ПостГИС.
Примечание
При успешной установке сервер PostgreSQL будет запускаться в фоновом режиме при каждом запуске системы в качестве службы Windows. Будет создана группа psql
.
ПостГИС¶
В конструкторе стека приложений (для запуска вне программы установки
) выберите из выпадающего меню. Затем разверните дерево меню и выберите .После нажатия кнопки next вам будет предложено выбрать зеркало, PostGIS будет загружен, и начнется программа установки PostGIS. Во время установки выбирайте только опции по умолчанию (например, не снимайте флажок с опции создания базы данных PostGIS по умолчанию).
Примечание
Вам будет предложено ввести пароль суперпользователя базы данных postgres
в диалоговом окне „Информация о подключении к базе данных“.
psycopg2¶
Модуль psycopg2
Python обеспечивает интерфейс между Python и базой данных PostgreSQL. Скачайте последнюю версию Windows installer для вашей версии Python и PostgreSQL и запустите, используя настройки по умолчанию. [2]
OSGeo4W¶
OSGeo4W installer упрощает установку библиотек PROJ.4, GDAL и GEOS, необходимых для GeoDjango. Сначала скачайте OSGeo4W installer и запустите его. Выберите и нажмите кнопку next. В списке „Select Packages“ убедитесь, что выбран GDAL; MapServer и Apache также включены по умолчанию, но они не требуются GeoDjango и могут быть сняты. После нажатия кнопки next пакеты будут автоматически загружены и установлены, после чего вы можете выйти из программы установки.
Изменение среды Windows¶
Для использования GeoDjango вам необходимо добавить каталоги Python и OSGeo4W в систему Windows Path
, а также создать переменные окружения GDAL_DATA
и PROJ_LIB
. Это можно сделать с помощью следующего набора команд, выполняемых с помощью cmd.exe
:
set OSGEO4W_ROOT=C:\OSGeo4W
set PYTHON_ROOT=C:\Python3X
set GDAL_DATA=%OSGEO4W_ROOT%\share\gdal
set PROJ_LIB=%OSGEO4W_ROOT%\share\proj
set PATH=%PATH%;%PYTHON_ROOT%;%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%"
Примечание
Для выполнения этих команд требуются привилегии администратора. Для этого создайте сценарий bat
с командами, щелкните его правой кнопкой мыши и выберите . Чтобы настройки вступили в силу, необходимо выйти из системы и снова войти в нее.
Примечание
Если вы изменили каталоги установки Python или OSGeo4W, то вам необходимо соответствующим образом изменить переменные OSGEO4W_ROOT
и/или PYTHON_ROOT
.
Установите Django и настройте базу данных¶
Наконец, install Django в вашей системе.
Сноски
[1] | GeoDjango использует процедуру find_library() из ctypes.util для поиска разделяемых библиотек. |
[2] | Установщики psycopg2 Windows упакованы и поддерживаются Jason Erickson. |