Установка GeoDjango
Обзор
В целом, установка GeoDjango требует:
Подробная информация по каждому из требований и инструкции по установке приведены в разделах ниже. Кроме того, доступны инструкции для платформ:
Используйте исходный код
Поскольку GeoDjango использует новейшие технологии открытого геопространственного программного обеспечения, необходимы последние версии библиотек. Если для вашей платформы нет бинарных пакетов, может потребоваться установка из исходного кода. При компиляции библиотек из исходного кода, пожалуйста, следуйте инструкциям, особенно если вы новичок.
Требования
Python и Django
Поскольку GeoDjango включен в Django, обратитесь к инструкциям по установке Django для получения подробностей.
Пространственная база данных
В настоящее время поддерживаются пространственные базы данных: PostgreSQL (с PostGIS), MySQL (в основном с движком MyISAM), Oracle и SQLite (с SpatiaLite).
Примечание
PostGIS рекомендуется, потому что это самая зрелая и функционально богатая открытая пространственная база данных.
Геопространственные библиотеки, необходимые для установки GeoDjango, зависят от используемой пространственной базы данных. Ниже приведен список требований к библиотекам, поддерживаемые версии и примечания для каждого из поддерживаемых бэкэндов баз данных:
| База данных | Требования к библиотекам | Поддерживаемые версии | Примечания |
|---|---|---|---|
| PostgreSQL | GEOS, GDAL, PROJ.4, PostGIS | 9.4+ | Требуется PostGIS. |
| MySQL | GEOS, GDAL | 5.6+ | Не соответствует OGC; ограниченная функциональность. |
| Oracle | GEOS, GDAL | 12.1+ | XE не поддерживается. |
| SQLite | GEOS, GDAL, PROJ.4, SpatiaLite | 3.7.15+ | Требуется SpatiaLite 4.1+ |
См. также эту сравнительную матрицу на сайте OSGeo Wiki для возможных комбинаций PostgreSQL/PostGIS/GEOS/GDAL.
Установка
Геопространственные библиотеки
Установка базы данных
DATABASES настройка
Установите параметр ENGINE на один из пространственных бэкэндов.
Добавить django.contrib.gis в INSTALLED_APPS
Как и другие приложения Django contrib, вам только нужно добавить django.contrib.gis в INSTALLED_APPS в вашем файле настроек. Это необходимо, чтобы шаблоны gis могли быть найдены — в противном случае такие функции, как географический администратор или KML-карты сайта, не будут работать должным образом.
Устранение неполадок
Если вы не можете найти решение своей проблемы здесь, участвуйте в сообществе! Вы можете:
- Присоединиться к каналу
#geodjangoIRC на Freenode. Пожалуйста, будьте терпеливы и вежливы — хотя вы можете не получить немедленного ответа, кто-то попытается ответить на ваш вопрос, как только увидит его. - Задать свой вопрос на почтовой рассылке GeoDjango.
- Создать билет на Django trac, если считаете, что есть ошибка. Убедитесь, что вы предоставили полное описание проблемы, используемые версии и указали компонент как «GIS».
Настройки среды библиотек
Самая распространённая проблема при установке GeoDjango заключается в том, что внешние общие библиотеки (например, для GEOS и GDAL) не могут быть найдены. [1] Обычно причиной этой проблемы является то, что операционная система не знает, где были установлены библиотеки, созданные из исходного кода.
В целом, путь к библиотекам может настраиваться на уровне пользователя путём установки переменной среды или путём настройки пути к библиотекам для всей системы.
LD_LIBRARY_PATH переменная среды
Пользователь может установить эту переменную среды, чтобы настроить пути к библиотекам, которые он хочет использовать. Типичный каталог библиотек для программного обеспечения, созданного из исходного кода, это /usr/local/lib. Таким образом, /usr/local/lib должен быть включён в переменную LD_LIBRARY_PATH. Например, пользователь может добавить следующее в свой файл .bashrc:
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 без компиляции из исходного кода. Однако, 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 можно установить с помощью следующей команды:
$ 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.
Python
PostgreSQL
Сначала загрузите последнюю версию установщика PostgreSQL 9.x с сайта EnterpriseDB. После загрузки просто запустите установщик, следуйте инструкциям на экране и оставляйте значения по умолчанию, если вы не знаете последствий их изменения.
Примечание
Установщик PostgreSQL создаёт нового пользователя Windows для «пользователя службы postgres» и postgres пользователя базы данных с правами суперпользователя. Вас попросят один раз установить пароль для обеих учётных записей — обязательно запомните его!
После завершения установки установщик предложит запустить Application Stack Builder (ASB) — оставьте эту опцию включённой, так как она необходима для установки PostGIS.
Примечание
Если установщик успешно завершён, сервер PostgreSQL будет работать в фоновом режиме каждый раз при запуске системы как служба Windows. Будет создана группа меню «PostgreSQL 9.x», которая содержит ярлыки для ASB и «SQL Shell», которые запустят окно команд psql.
PostGIS
В Application Stack Builder (для запуска вне установщика, ) выберите из раскрывающегося списка. Далее разверните дерево меню и выберите .
После нажатия «Далее» вам будет предложено выбрать зеркало, PostGIS будет загружен, и начнется установка PostGIS. Во время установки выберите только опции по умолчанию (например, не отключайте опцию создания базы данных PostGIS по умолчанию).
Примечание
Вам будет предложено ввести пароль postgres пользователя базы данных с правами суперпользователя в диалоговом окне «Сведения о подключении к базе данных».
psycopg2
Модуль Python psycopg2 предоставляет интерфейс между Python и базой данных PostgreSQL. Загрузите последний установщик Windows для вашей версии Python и PostgreSQL и запустите его, используя значения по умолчанию. [2]
OSGeo4W
Установщик OSGeo4W упрощает установку библиотек PROJ.4, GDAL и GEOS, необходимых для GeoDjango. Сначала загрузите установщик OSGeo4W и запустите его. Выберите и нажмите «Далее». В списке «Выбрать пакеты» убедитесь, что GDAL выбран; MapServer и Apache также включены по умолчанию, но не требуются для GeoDjango и могут быть безопасно отключены. После нажатия «Далее» пакеты будут автоматически загружены и установлены, после чего можно закрыть установщик.
Изменение среды Windows
Для использования GeoDjango вам необходимо добавить каталоги Python и OSGeo4W в вашу системную переменную 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 и настроить базу данных
Наконец, установите Django на вашей системе.
Примечания
| [1] | GeoDjango использует функцию find_library() из ctypes.util для поиска общих библиотек. |
| [2] | Установщики psycopg2 Windows упакованы и поддерживаются Jason Erickson. |
© Django Software Foundation and individual contributors
Licensed under the BSD License.
https://docs.djangoproject.com/en/2.1/ref/contrib/gis/install/index/