Установка GeoDjango
Обзор
В общем случае для установки GeoDjango требуются:
Подробная информация о каждом требовании и инструкции по установке приведены в разделах ниже. Кроме того, доступны инструкции для отдельных платформ:
Использование исходного кода
Поскольку GeoDjango использует новейшие технологии геопространственного программного обеспечения с открытым исходным кодом, необходимы актуальные версии библиотек. Если для вашей платформы недоступны бинарные пакеты, может потребоваться установка из исходного кода. При компиляции библиотек из исходного кода внимательно следуйте инструкциям, особенно если вы новичок.
Требования
Python и Django
Поскольку GeoDjango входит в состав Django, подробные сведения об установке см. в инструкциях по установке Django.
Пространственная база данных
В настоящее время поддерживаются пространственные базы данных PostgreSQL (с PostGIS), MySQL, Oracle и SQLite (с SpatiaLite).
Примечание
Рекомендуется PostGIS, поскольку это наиболее зрелая пространственная база данных с открытым исходным кодом, обладающая широкими возможностями.
Геопространственные библиотеки, необходимые для установки GeoDjango, зависят от используемой пространственной базы данных. Ниже перечислены требования к библиотекам, поддерживаемые версии и примечания для каждой из поддерживаемых баз данных:
База данных | Требуемые библиотеки | Поддерживаемые версии | Примечания |
|---|---|---|---|
PostgreSQL | GEOS, GDAL, PROJ, PostGIS | 14+ | Требуется PostGIS. |
MySQL | GEOS, GDAL | 8.0.11+ | |
Oracle | GEOS, GDAL | 19+ | XE не поддерживается. |
SQLite | GEOS, GDAL, PROJ, SpatiaLite | 3.31.0+ | Требуется SpatiaLite 4.3+ |
См. также эту сравнительную таблицу в OSGeo Wiki с возможными сочетаниями PostgreSQL/PostGIS/GEOS/GDAL.
Установка
Геопространственные библиотеки
Установка базы данных
DATABASES configuration
Установите параметр ENGINE в одно из значений пространственных серверных частей.
Добавьте django.contrib.gis в INSTALLED_APPS
Как и другие приложения Django contrib, вам нужно будет только добавить django.contrib.gis в INSTALLED_APPS в настройках. Это необходимо, чтобы можно было найти шаблоны gis. Если этого не сделать, такие функции, как географическая административная панель и карты сайта KML, не будут работать должным образом.
Решение проблем
Если вы не нашли здесь решения своей проблемы, присоединяйтесь к сообществу! Вы можете:
- Задать вопрос на форуме 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. С правами суперпользователя добавьте пользовательский путь к библиотекам (например, /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. Поэтому, если в вашей системе Linux не установлен binutils, ctypes в Python может не найти библиотеку, даже если путь к ней настроен правильно и геопространственные библиотеки собраны без ошибок.
Пакет 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
Хотя Python уже установлен в macOS, пользователи могут воспользоваться установщиками framework, предоставляемыми Python Software Foundation. Преимущество такого установщика в том, что Python, входящий в состав macOS, останется «нетронутым» для внутренних нужд операционной системы.
Примечание
Чтобы при вводе python в командной строке использовалась новая версия Python, необходимо изменить переменную окружения PATH в файле .profile:
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 предоставляет «рецепты» для сборки бинарных файлов и пакетов из исходного кода. Для компьютеров Macintosh под управлением macOS доступны рецепты для зависимостей GeoDjango. Поскольку 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 postgresql14-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/postgresql14/bin
Кроме того, добавьте параметр DYLD_FALLBACK_LIBRARY_PATH, чтобы Python мог находить библиотеки:
export DYLD_FALLBACK_LIBRARY_PATH=/opt/local/lib:/opt/local/lib/postgresql14
Windows
Чтобы установить GeoDjango в Windows, последовательно выполните инструкции из следующих разделов. В этом руководстве мы установим 64-разрядные версии каждого приложения.
Python
Установите 64-разрядную версию Python. Дополнительную информацию см. в разделе Установка Python.
PostgreSQL
Загрузите последнюю версию установщика PostgreSQL 15.x с сайта EnterpriseDB. После загрузки запустите установщик, следуйте инструкциям на экране и оставьте параметры по умолчанию, если вам неизвестны последствия их изменения.
Примечание
Установщик PostgreSQL создает нового суперпользователя базы данных postgres. Вам будет предложено задать пароль — обязательно запомните его!
По завершении работы установщика появится вопрос «Запустить Stack Builder при выходе?» — оставьте этот флажок установленным, поскольку 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 в системную переменную Path Windows, а также создать переменные окружения 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
Сноски
© Django Software Foundation and individual contributors
Licensed under the BSD License.
https://docs.djangoproject.com/en/6.0/ref/contrib/gis/install/index/