配置Postgresql POSTGIS数据库

时间:2016-10-04 23:59:06

标签: python django database postgresql geodjango

首先,我是django的新手。我正在尝试在Django 1.10的POSTGIS数据库中使用GeoLite(GeoIP2)数据集。当我尝试配置myapp / settings.py文件时,我收到错误消息。似乎是django目录中不同路径中的数据库后端;你能澄清一下原因吗?

  1. django \ contrib \ gis \ db \ backends \ postgis
  2. django的\分贝\后端
  3. 激活我的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’.
    

    您能否为上述错误消息提供可能的解决方案?谢谢。

1 个答案:

答案 0 :(得分:1)

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

  

设置PYTHON_ROOT = C:\ Python35-32设置GDAL_DATA = C:\ Program   Files \ PostgreSQL \ 9.6 \ gdal-data set PROJ_LIB = C:\ Program   Files \ PostgreSQL \ 9.6 \ share \ contrib \ postgis \ proj set   PATH =%PATH%;%PYTHON_ROOT%;%OSGEO4W_ROOT%\ bin reg ADD   " HKLM \ SYSTEM \ CurrentControlSet \ Control \ Session Manager \ Environment" / v   路径/ 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'从django项目目录开始,现在可以使用以下命令进行迁移:python manage.py migrate