Установка GeoDjango
Обзор
В целом, установка GeoDjango требует:
Подробная информация по каждому из требований и инструкции по установке приведены в разделах ниже. Кроме того, доступны платформо-специфические инструкции для:
Используйте исходный код
Поскольку GeoDjango использует новейшие технологии открытого геопространственного программного обеспечения, необходимы последние версии библиотек. Если для вашей платформы нет бинарных пакетов, может потребоваться установка из исходного кода. При компиляции библиотек из исходного кода, пожалуйста, внимательно следуйте инструкциям, особенно если вы новичок.
Требования
Python и Django
Поскольку GeoDjango входит в состав Django, для получения подробной информации об установке обратитесь к инструкциям по установке Django: инструкциям по установке.
Пространственная база данных
В настоящее время поддерживаются пространственные базы данных PostgreSQL (с PostGIS), MySQL (в основном с движком MyISAM), Oracle и SQLite (со SpatiaLite).
Примечание
PostGIS рекомендуется, так как это самая зрелая и функциональная открытая пространственная база данных.
Геопространственные библиотеки, необходимые для установки GeoDjango, зависят от используемой пространственной базы данных. В следующих списках перечислены требования к библиотекам, поддерживаемые версии и любые замечания для каждого из поддерживаемых бэкэндов баз данных:
| База данных | Требования к библиотекам | Поддерживаемые версии | Примечания |
|---|---|---|---|
| PostgreSQL | GEOS, GDAL, PROJ.4, PostGIS | 9.3+ | Требуется PostGIS. |
| MySQL | GEOS, GDAL | 5.5+ | Не соответствует OGC; ограниченные возможности. |
| Oracle | GEOS, GDAL | 11.2+ | XE не поддерживается. |
| SQLite | GEOS, GDAL, PROJ.4, SpatiaLite | 3.6.+ | Требуется SpatiaLite 4.0+, pysqlite2 2.5+ |
См. также эту сравнительную матрицу на вики-сайте OSGeo для возможных комбинаций PostgreSQL/PostGIS/GEOS/GDAL.
Установка
Геопространственные библиотеки
Установка базы данных
Добавить django.contrib.gis в INSTALLED_APPS
Как и другие приложения Django contrib, вам только нужно добавить django.contrib.gis в INSTALLED_APPS в вашем файле настроек. Это необходимо для того, чтобы шаблоны gis были доступны — если этого не сделать, такие функции, как географический администратор или KML-карты, не будут работать должным образом.
Отладка
Если вы не можете найти решение своей проблемы здесь, примите участие в сообществе! Вы можете:
- Присоединиться к каналу IRC
#geodjangoна 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
Вильям Кингзберри предоставляет ряд бинарных пакетов геопространственных библиотек, которые упрощают установку GeoDjango на macOS без компиляции из исходного кода. Однако, Xcode всё ещё необходим для компиляции адаптеров баз данных Python psycopg2 (для PostGIS) и pysqlite2 (для SpatiaLite).
Примечание
Пользователям 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
Курт Швейер любезно подготовил пакеты 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 в переменные среды Windows Path, а также создать переменные среды GDAL_DATA и PROJ_LIB. Следующий набор команд, выполнимый с помощью cmd.exe, настроит это:
set OSGEO4W_ROOT=C:\OSGeo4W set PYTHON_ROOT=C:\Python27 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%"
Для вашего удобства эти команды доступны в исполняемом пакетном скрипте geodjango_setup.bat.
Примечание
Для выполнения этих команд требуются права администратора. Для этого щелкните правой кнопкой мыши geodjango_setup.bat и выберите . Для того, чтобы изменения вступили в силу, необходимо выйти и снова войти в систему.
Примечание
Если вы изменили каталоги установки Python или OSGeo4W, вам нужно будет соответствующим образом изменить переменные OSGEO4W_ROOT и/или PYTHON_ROOT.
Установите Django и настройте базу данных
Наконец, установите Django на вашей системе.
Примечания
| [1] | GeoDjango использует функцию find_library() из ctypes.util для поиска общих библиотек. |
| [2] | Установщики psycopg2 для Windows упаковываются и поддерживаются Джейсоном Эриксоном. |
© Django Software Foundation and individual contributors
Licensed under the BSD License.
https://docs.djangoproject.com/en/1.11/ref/contrib/gis/install/index/