Установка 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.8.3+ | Требуется SpatiaLite 4.1+ |
См. также эту матрицу сравнения на вики-сайте OSGeo для возможных комбинаций 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.
END_OF_DOCUMENT_MARKERРезюме:
$ 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 может быть установлен с помощью следующей команды:
$ 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. Будет создана группа меню , содержащая ярлыки для 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 вашей системы Windows, а также создать переменные среды 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.2/ref/contrib/gis/install/index/