Установка геопространственных библиотек¶
GeoDjango использует и/или предоставляет интерфейсы для следующих геопространственных библиотек с открытым исходным кодом:
Программа |
Описание |
Необходимый |
Поддерживаемые версии |
|---|---|---|---|
Геометрический движок с открытым исходным кодом |
Да |
3.9, 3.8, 3.7, 3.6, 3.5 |
|
Библиотека картографических проекций |
Да (только PostgreSQL и SQLite) |
7.x. 6.x, 5.x, 4.x |
|
Библиотека абстракции геопространственных данных |
Да |
3.2, 3.1, 3.0, 2.4, 2.3, 2.2, 2.1, 2.0 |
|
Библиотека геолокации на основе IP |
Нет |
2 |
|
Пространственные расширения для PostgreSQL |
Да (только PostgreSQL) |
3.0, 2.5, 2.4, 2.3 |
|
Пространственные расширения для SQLite |
Да (только SQLite) |
4.3 |
Обратите внимание, что более старые или более поздние версии этих библиотек могут также прекрасно работать с GeoDjango. Ваш пробег может отличаться.
Примечание
Интерфейсы GeoDjango для GEOS, GDAL и GeoIP можно использовать независимо от Django. Другими словами, не требуется никакой базы данных или файла настроек — импортируйте их как обычно из django.contrib.gis.
В Debian/Ubuntu рекомендуется установить следующие пакеты, которые напрямую или через зависимость установят необходимые геопространственные библиотеки:
$ sudo apt-get install binutils libproj-dev gdal-bin
Также ознакомьтесь с инструкциями для конкретной платформы, если вы используете macOS или Окна.
Сборка из исходников¶
При установке из исходного кода в системах UNIX и GNU/Linux внимательно следуйте инструкциям по установке и устанавливайте библиотеки в указанном порядке. Если в качестве пространственной базы данных используется MySQL или Oracle, требуется только GEOS.
Примечание
On Linux platforms, it may be necessary to run the ldconfig command
after installing each library. For example:
$ sudo make install
$ sudo ldconfig
Примечание
Пользователи macOS должны установить Xcode, чтобы скомпилировать программное обеспечение из исходного кода.
ГЕОС¶
GEOS — это библиотека C++ для выполнения геометрических операций, которая является внутренним представлением геометрии по умолчанию, используемым GeoDjango (оно находится за «ленивой» геометрией). В частности, библиотека C API вызывается (например, libgeos_c.so) непосредственно из Python с использованием ctypes.
First, download GEOS from the GEOS website and untar the source archive:
$ wget https://download.osgeo.org/geos/geos-X.Y.Z.tar.bz2
$ tar xjf geos-X.Y.Z.tar.bz2
Next, change into the directory where GEOS was unpacked, run the configure script, compile, and install:
$ cd geos-X.Y.Z
$ ./configure
$ make
$ sudo make install
$ cd ..
Решение проблем¶
Не могу найти библиотеку GEOS¶
Когда GeoDjango не может найти GEOS, возникает эта ошибка:
ImportError: Could not find the GEOS library (tried "geos_c"). Try setting GEOS_LIBRARY_PATH in your settings.
Наиболее распространенным решением является правильная настройка Настройки среды библиотеки или установки GEOS_LIBRARY_PATH в ваших настройках.
Если вы используете двоичный пакет GEOS (например, в Ubuntu), вам может потребоваться Установите binutils.
GEOS_LIBRARY_PATH¶
If your GEOS library is in a non-standard location, or you don’t want to
modify the system’s library path then the GEOS_LIBRARY_PATH
setting may be added to your Django settings file with the full path to the
GEOS C library. For example:
GEOS_LIBRARY_PATH = '/home/bob/local/lib/libgeos_c.so'
Примечание
Параметр должен представлять собой полный путь к общей библиотеке C; другими словами, вы хотите использовать libgeos_c.so, а не libgeos.so.
См. также Мои журналы заполнены ошибками, связанными с GEOS,.
ПРОДЖ¶
PROJ — это библиотека для преобразования геопространственных данных в различные системы координат.
First, download the PROJ source code:
$ wget https://download.osgeo.org/proj/proj-X.Y.Z.tar.gz
… and datum shifting files (download proj-datumgrid-X.Y.tar.gz for
PROJ < 7.x) [1]:
$ wget https://download.osgeo.org/proj/proj-data-X.Y.tar.gz
Next, untar the source code archive, and extract the datum shifting files in the
data subdirectory (use nad subdirectory for PROJ < 6.x). This must be
done prior to configuration:
$ tar xzf proj-X.Y.Z.tar.gz
$ cd proj-X.Y.Z/data
$ tar xzf ../../proj-data-X.Y.tar.gz
$ cd ..
Finally, configure, make and install PROJ:
$ ./configure
$ make
$ sudo make install
$ cd ..
ГДАЛ¶
GDAL — отличная геопространственная библиотека с открытым исходным кодом, поддерживающая чтение большинства векторных и растровых форматов пространственных данных. В настоящее время GeoDjango поддерживает только возможности векторных данных GDAL <../gdal>` [2]. ГЕОС и ПРОДЖ должны быть установлены до сборки GDAL.
First download the latest GDAL release version and untar the archive:
$ wget https://download.osgeo.org/gdal/X.Y.Z/gdal-X.Y.Z.tar.gz
$ tar xzf gdal-X.Y.Z.tar.gz
$ cd gdal-X.Y.Z
Configure, make and install:
$ ./configure
$ make # Go get some coffee, this takes a while.
$ sudo make install
$ cd ..
Примечание
Because GeoDjango has its own Python interface, the preceding instructions
do not build GDAL’s own Python bindings. The bindings may be built by
adding the --with-python flag when running configure. See
GDAL/OGR In Python for more information on GDAL’s bindings.
Если у вас возникли проблемы, ознакомьтесь с предложениями и решениями в разделе «Устранение неполадок» ниже.
Решение проблем¶
Не могу найти библиотеку GDAL¶
Если GeoDjango не может найти библиотеку GDAL, настройте Настройки среды библиотеки или установите GDAL_LIBRARY_PATH в своих настройках.
GDAL_LIBRARY_PATH¶
If your GDAL library is in a non-standard location, or you don’t want to
modify the system’s library path then the GDAL_LIBRARY_PATH
setting may be added to your Django settings file with the full path to
the GDAL library. For example:
GDAL_LIBRARY_PATH = '/home/sue/local/lib/libgdal.so'
Сноски