Установка GeoDjango
Обзор
В целом, установка GeoDjango требует:
Подробные сведения о каждом из требований и инструкции по установке приведены в следующих разделах. Кроме того, доступны платформо-специфические инструкции для:
Используйте исходный код
Поскольку GeoDjango использует новейшие технологии открытого геопространственного программного обеспечения, необходимы последние версии библиотек. Если для вашей платформы не доступны двоичные пакеты, может потребоваться установка из исходного кода. При компиляции библиотек из исходного кода, пожалуйста, внимательно следуйте инструкциям, особенно если вы новичок.
Требования
Python и Django
Поскольку GeoDjango включен в Django, обратитесь к инструкциям по установке Django для получения подробной информации об установке.
Пространственная база данных
В настоящее время поддерживаются пространственные базы данных PostgreSQL (с PostGIS), MySQL, Oracle и SQLite (со SpatiaLite).
Примечание
PostGIS рекомендуется, так как это самая зрелая и функциональная открытая пространственная база данных.
Геопространственные библиотеки, необходимые для установки GeoDjango, зависят от используемой пространственной базы данных. Ниже перечислены требования к библиотекам, поддерживаемые версии и замечания для каждого из поддерживаемых типов бэкендов баз данных:
| База данных | Требования к библиотекам | Поддерживаемые версии | Примечания |
|---|---|---|---|
| PostgreSQL | GEOS, GDAL, PROJ, PostGIS | 12+ | Требуется PostGIS. |
| MySQL | GEOS, GDAL | 8+ | Ограниченная функциональность. |
| Oracle | GEOS, GDAL | 19+ | XE не поддерживается. |
| SQLite | GEOS, GDAL, PROJ, SpatiaLite | 3.21.0+ | Требуется SpatiaLite 4.3+ |
См. также эту матрицу сравнения на вики-сайте OSGeo для возможных комбинаций PostgreSQL/PostGIS/GEOS/GDAL.
Установка
Геопространственные библиотеки
Установка базы данных
DATABASES конфигурация
Установите параметр ENGINE на один из пространственных бэкендов.
Добавьте django.contrib.gis в INSTALLED_APPS
Как и другие приложения Django contrib, вам только нужно добавить django.contrib.gis в INSTALLED_APPS в ваших настройках. Это необходимо для того, чтобы шаблоны gis были доступны — если этого не сделать, такие функции, как географический администратор или KML-карты, не будут работать должным образом.
Отладка
Если здесь вы не найдёте решение своей проблемы, примите участие в сообществе! Вы можете:
- Присоединиться к каналу
#django-geoIRC на Libera.Chat. Пожалуйста, будьте терпеливы и вежливы — хотя вы можете не получить немедленного ответа, кто-то попытается ответить на ваш вопрос, как только увидит его. - Задать свой вопрос на форуме 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, Python's ctypes может не найти вашу библиотеку, даже если путь к вашей библиотеке задан правильно и геопространственные библиотеки были скомпилированы идеально.
Пакет binutils может быть установлен в системах Debian и Ubuntu с помощью следующей команды:
$ sudo apt-get install binutils
Аналогично, в системах Red Hat и CentOS:
$ sudo yum install binutils
Платформо-специфические инструкции
macOS
Из-за разнообразия систем пакетирования, доступных для macOS, пользователи имеют несколько вариантов установки GeoDjango. Эти варианты:
- Postgres.app (наиболее простой и рекомендуемый)
- Homebrew
- 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
Fink
Курт Швеер любезно предоставил пакеты GeoDjango для пользователей системы пакетов Fink. Доступны различные пакеты (начиная с django-gis), в зависимости от используемой версии Python.
MacPorts
MacPorts можно использовать для установки необходимых для GeoDjango компонентов на компьютерах под управлением macOS. Поскольку MacPorts всё ещё собирает ПО из исходных кодов, для этого требуется Xcode.
Краткое описание:
$ sudo port install postgresql13-server $ sudo port install geos $ sudo port install proj6 $ sudo port install postgis3 $ sudo port install gdal $ sudo port install libgeoip
Примечание
Вам также нужно будет изменить PATH в вашем .profile, чтобы программы MacPorts были доступны из командной строки:
export PATH=/opt/local/bin:/opt/local/lib/postgresql13/bin
Кроме того, добавьте DYLD_FALLBACK_LIBRARY_PATH настройку, чтобы библиотеки можно было найти Python:
export DYLD_FALLBACK_LIBRARY_PATH=/opt/local/lib:/opt/local/lib/postgresql13
Windows
Выполните следующие шаги последовательно, чтобы установить GeoDjango на Windows. В этом руководстве мы будем устанавливать 64-битные версии каждого приложения.
Python
Установите 64-битную версию Python. См. Установку Python для получения дополнительной информации.
PostgreSQL
Загрузите последнюю версию установщика PostgreSQL 15.x с веб-сайта EnterpriseDB. После загрузки запустите установщик, следуйте инструкциям на экране и сохраняйте значения по умолчанию, если вы не понимаете последствий их изменения.
Примечание
Установщик PostgreSQL создаёт нового суперпользователя базы данных postgres . Вам будет предложено установить пароль — не забудьте его запомнить!
По окончании установки установщик спросит: «Запустить Stack Builder при выходе?» — оставьте эту опцию включенной, так как она необходима для установки PostGIS.
Примечание
Если установка прошла успешно, сервер PostgreSQL будет работать в фоновом режиме при каждом запуске системы в качестве службы Windows. Будет создана группа меню , содержащая ярлыки для Application Stack Builder (ASB), а также «SQL Shell», который запустит psql окно команд.
PostGIS
Внутри Stack Builder (чтобы запустить его вне установщика, выберите ), выберите из раскрывающегося списка и нажмите «Далее». Разверните меню и выберите .
После нажатия «Далее» вам будет предложено подтвердить выбранный пакет и «Директорию загрузки». Нажмите «Далее» ещё раз, это позволит загрузить PostGIS, и вас попросят нажать «Далее», чтобы начать установку PostGIS. При установке выберите значения по умолчанию. Процесс установки включает в себя четыре диалоговых окна «Да/Нет», значение по умолчанию для всех четырёх — «Нет».
OSGeo4W
Установщик OSGeo4W помогает установить библиотеки PROJ, GDAL и GEOS, необходимые для GeoDjango. Сначала загрузите установщик OSGeo4W и запустите его. Выберите и нажмите «Далее». В списке «Выбрать пакеты» убедитесь, что GDAL выбран. Если какие-либо другие пакеты включены по умолчанию, они не требуются GeoDjango и могут быть безопасно сняты с выбора. После нажатия «Далее» и принятия лицензионных соглашений пакеты будут автоматически загружены и установлены, после чего вы можете выйти из установщика.
Изменение среды Windows
Для использования GeoDjango вам нужно добавить каталоги OSGeo4W в вашу среду Windows Path, а также создать переменные среды GDAL_DATA и PROJ_LIB. Следующий набор команд, выполняемый с помощью cmd.exe, выполнит эту настройку. Перезагрузите устройство после завершения, чтобы новые переменные среды были распознаны:
set OSGEO4W_ROOT=C:\OSGeo4W set GDAL_DATA=%OSGEO4W_ROOT%\apps\gdal\share\gdal set PROJ_LIB=%OSGEO4W_ROOT%\share\proj set PATH=%PATH%;%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%"
Примечание
Для выполнения этих команд требуется административные права. Для этого запустите командную строку от имени администратора и введите указанные выше команды. Для того, чтобы настройки вступили в силу, необходимо выйти и снова войти в систему.
Примечание
Если вы изменили каталоги установки OSGeo4W, вам необходимо соответствующим образом изменить переменные OSGEO4W_ROOT.
Установка Django и настройка базы данных
Установить Django на вашей системе. Рекомендуется создавать виртуальную среду виртуальную среду для каждого проекта.
psycopg
Модуль Python psycopg предоставляет интерфейс между Python и базой данных PostgreSQL. psycopg можно установить с помощью pip в вашей виртуальной среде Python:
...\> py -m pip install psycopg
Примечания
| [1] | GeoDjango использует функцию find_library() из ctypes.util для поиска общих библиотек. |
© Django Software Foundation and individual contributors
Licensed under the BSD License.
https://docs.djangoproject.com/en/4.2/ref/contrib/gis/install/index/