配置 Postgresql POSTGIS 数据库

Configuring a Postgresql POSTGIS database

首先,我是 django 的新手。我正在尝试在 Django 1.10 的 POSTGIS 数据库中使用 GeoLite(GeoIP2) 数据集。当我尝试配置 myapp/settings.py 文件时,出现错误 messages.There seemed be database backends in different paths in the django directory;你能解释一下为什么吗?

  1. django\contrib\gis\db\backends\postgis
  2. django\db\backends

激活我的 python3 虚拟环境后,当我尝试将 settings.py 文件中的默认数据库设置为 postgresql('django.db.backends.postgresql') 时,出现错误:

AttributeError:”Database Operations’ object has no attribute ‘geo_db_type’.

当我尝试使用 POSTGIS 作为我的数据库引擎时(我在我的虚拟环境中设置了 GDAL_LIBRARY_PATH),我得到一个错误:

django.contrib.gis.db.backends.postgis' is not an available database backend. Try using 'django.db.backends.XXX', where XXX is one of 'mysql', 'oracle', 'postgresql',and 'sqlite'.
Error was: Cannot import name ‘GDALRaster’.

您能否针对上述错误消息提出可能的解决方案?谢谢。

从 Christopher Gohlke 的站点(32 位 GDAL-2.0.3-cp35-cp35m-win32.whl)安装 GDAL 到虚拟环境中。 下载 OSGEO4W(32 位)并安装 Express Web 选项。 创建环境变量。设置环境变量如下:

set PYTHON_ROOT=C:\Python35-32 set GDAL_DATA=C:\Program Files\PostgreSQL.6\gdal-data set PROJ_LIB=C:\Program Files\PostgreSQL.6\share\contrib\postgis\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%"

我也把LD_LIBRARY_PATH设为C:\Python35-32\myvenv_python3\Lib\site-packages\osgeo。 然后,数据库配置不正确,无法导入 'GDALRaster' 去了 away.From 你的 django 项目目录,现在可以使用以下方法迁移:python manage.py migrate