Postgis不是可用的数据库后端

时间:2016-02-23 11:17:59

标签: django postgresql geodjango

在工作的django 1.9应用程序中设置geodjango时,我遇到了这个错误。

我的应用程序位于亚马逊EC2实例和RDS postgres实例中。

错误是:

django.core.exceptions.ImproperlyConfigured: 'django.contrib.gis.db.backends.postgis' isn't an available database backend.
Try using 'django.db.backends.XXX', where XXX is one of:
    'mysql', 'oracle', 'postgresql', 'sqlite3

我做了什么:

  • 按照geodjango doc
  • 中的说明安装GEOS,PROJ.4和PostGIS
  • 按照amazon doc
  • 中的说明在亚马逊RDS中安装PostGIS
  • 修改我的项目 settings.py 以包含:

    • INSTALLED_APPS =(...'django.contrib.admin',...'django.contrib.gis')
    • GEOS_LIBRARY_PATH ='/ usr / local / lib / libgeos_c.so'
    • DATABASES = {...'ENGINE':'django.contrib.gis.db.backends.postgis'...}
  • 修改我的应用 models.py 以从 django.contrib.gis.db 导入模型,而不是 django.db

猜猜我错过了什么?

4 个答案:

答案 0 :(得分:5)

运行此命令

  

sudo apt-get install binutils libproj-dev gdal-bin

这是in this documentation

所描述的

答案 1 :(得分:0)

我发现我的libgdal库导致了我的问题并给了我这个错误。

我在运行Django 1.11和GDAL 2.0的conda环境下的Windows中工作。改变GDAL和django版本似乎没有解决任何问题。但是,将libgdal版本设置为1.11.2似乎可以清除错误。

答案 2 :(得分:0)

我有同样的问题。我运行了pip install gdal,其中显示了有关系统中缺少libffi库的错误消息。安装正确的库(libffi6 on AUR)之后,我再次运行pip install gdal,问题已解决。

答案 3 :(得分:0)

我遇到了同样的问题 我安装了 osgeo 然后导航到缺少的库

> # Build paths inside the project like this: os.path.join(BASE_DIR, ...) BASE_DIR =
> os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
> TEMPLATE_DIR=os.path.join(BASE_DIR,'templates')

这些是我所缺少的库:

 GDAL_LIBRARY_PATH = r'C:\OSGeo4W64\bin\gdal204.dll'
 GEOS_LIBRARY_PATH=r'C:\OSGeo4W64\bin\geos_c.dll'