Установка GeoDjango
Обзор
В общем случае, установка GeoDjango требует:
Подробности для каждого из требований и инструкции по установке приведены в разделах ниже. Кроме того, доступны инструкции, специфичные для платформы:
Используйте исходный код
Поскольку GeoDjango использует новейшие технологии открытого геопространственного программного обеспечения, необходимы последние версии библиотек. Если для вашей платформы не доступны двоичные пакеты, может потребоваться установка из исходного кода. При компиляции библиотек из исходного кода, пожалуйста, внимательно следуйте инструкциям, особенно если вы новичок.
Требования
Python и Django
Поскольку GeoDjango включен в Django, обратитесь к инструкциям по установке Django для получения подробностей о способе установки.
Пространственная база данных
В настоящее время поддерживаются пространственные базы данных PostgreSQL (с PostGIS), MySQL (в основном с MyISAM), Oracle и SQLite (с SpatiaLite).
Примечание
Рекомендуется использовать PostGIS, поскольку это наиболее зрелая и функциональная открытая пространственная база данных.
Геопространственные библиотеки, необходимые для установки GeoDjango, зависят от используемой пространственной базы данных. Ниже приведен список требований к библиотекам, поддерживаемых версий и примечаний для каждого из поддерживаемых бэкендов базы данных:
| База данных | Требования к библиотекам | Поддерживаемые версии | Примечания |
|---|---|---|---|
| PostgreSQL | GEOS, PROJ.4, PostGIS | 9.1+ | Требуется PostGIS. |
| MySQL | GEOS | 5.5+ | Не соответствует OGC; ограниченные возможности. |
| Oracle | GEOS | 11.2+ | XE не поддерживается. |
| SQLite | GEOS, GDAL, PROJ.4, SpatiaLite | 3.6.+ | Требуется SpatiaLite 2.4+, pysqlite2 2.5+ |
См. также эту матрицу сравнения на Wiki OSGeo для возможных комбинаций PostgreSQL/PostGIS/GEOS/GDAL.
Установка
Геопространственные библиотеки
Установка базы данных
Добавить 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. Как администратор, добавьте пользовательский путь к библиотекам (например, /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
Инструкции, специфичные для платформы
Mac OS X
Из-за разнообразия систем пакетирования, доступных для OS X, пользователи имеют несколько различных вариантов установки GeoDjango. Эти варианты включают:
- Postgres.app (самый простой и рекомендуемый)
- Homebrew
- Пакеты KyngChaos
- Fink
- MacPorts
- Сборка из исходного кода
Этот раздел также включает инструкции по установке обновлённой версии Python из пакетов, предоставленных Python Software Foundation, однако это не обязательно.
Python
Хотя OS X поставляется с установленным Python, пользователи могут использовать инсталляторы фреймворка, предоставляемые Python Software Foundation. Преимущество использования инсталлятора заключается в том, что Python OS X останется «нетронутым» для внутреннего использования операционной системы.
Примечание
Вам потребуется изменить переменную окружения 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 под управлением OS X. Поскольку Homebrew по-прежнему компилирует программное обеспечение из исходного кода, требуются Apple Developer Tools.
Резюме:
$ brew install postgresql $ brew install postgis $ brew install gdal $ brew install libgeoip
Пакеты KyngChaos
William Kyngesburye предоставляет несколько бинарных пакетов геопространственной библиотеки, которые упрощают установку GeoDjango на OS X без компиляции из исходного кода. Однако для компиляции адаптеров Python баз данных psycopg2 (для PostGIS) и pysqlite2 (для SpatiaLite) всё ещё необходимы инструменты разработчика Apple.
Примечание
Пользователям SpatiaLite следует обратиться к разделу инструкций, специфичных для Mac OS X после установки пакетов для получения дополнительных инструкций.
Загрузите пакеты фреймворка для:
- 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 на Macintosh-компьютерах с ОС OS X. Поскольку MacPorts всё ещё собирает программное обеспечение из исходного кода, необходимы инструменты разработчика Apple.
Резюме:
$ 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.
Примечание
Эти инструкции предполагают использование 32-битных версий всех программ. В то время как 64-битные версии Python и PostgreSQL 9.x доступны, 64-битные версии пространственных библиотек, таких как GEOS и GDAL, пока не предоставляются установщиком OSGeo4W.
Python
Сначала загрузите последнюю версию установщика Python 2.7 с веб-сайта Python. Затем запустите установщик и сохраните настройки по умолчанию – например, оставьте «Установить для всех пользователей» и путь установки C:\Python27.
Примечание
У вас уже может быть установлена версия Python в C:\python, так как продукты ESRI иногда устанавливают копию там. Вы всё равно должны установить свежую версию Python 2.7.
PostgreSQL
Сначала загрузите последний установщик PostgreSQL 9.x с сайта EnterpriseDB. После загрузки просто запустите установщик, следуйте инструкциям на экране и сохраните настройки по умолчанию, если вы не знаете последствий их изменения.
Примечание
Установка PostgreSQL создаёт нового пользователя Windows для «учётной записи службы postgres» и пользователя базы данных postgres superuser. Вас попросят один раз установить пароль для обеих учётных записей – не забудьте его!
По завершении установки установщик запросит запустить 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 упрощает установку необходимых для GeoDjango библиотек PROJ.4, GDAL и GEOS. Сначала загрузите установщик 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 упаковываются и поддерживаются Jason Erickson. |
© Django Software Foundation and individual contributors
Licensed under the BSD License.
https://docs.djangoproject.com/en/1.9/ref/contrib/gis/install/index/