首页 > 解决方案 > 为什么它在运行迁移时抛出`GeoDjango Postgis requirements not满足得到错误?

问题描述

我正在使用带有 django 的 Postgresql 数据库,并且已经安装在 PostGis 中

CREATE EXTENSION postgis;

,gdalproj.4已经geos安装在contrib.gis django package. 正如文档所说,它们应该在安装 PostGis 之前安装。这是否意味着它们应该安装在 Postgresql 数据库或其他东西上。

1)我还需要将它们安装在 postgresql 数据库上吗?

到目前为止,我已经包含在settings.py

INSTALLED_APPS = [
      .
      .
      'django.contrib.gis',
]

DATABASES = {
        'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': '......',
        'USER' : '.........',
        'PASSWORD': '........',
        'HOSTNAME': 'localhost',
        'PORT': '5432',
    },
}

但是当我将它包含在models.py.

 from django.contrib.gis.db import models as geomodels

2)我尝试运行迁移,但出现此错误:

 django.core.exceptions.ImproperlyConfigured: Could not find the GDAL library (tried "gdal202", "gdal201", "gdal20", "gdal111", "gdal110", "gdal19"). Is GDAL in

停滞不前?如果是,请尝试在您的设置中设置 GDAL_LIBRARY_PATH。

我不确定我应该修复什么来运行迁移,如果这个错误与数据库或 django 相关

3)我需要在 django 和 postgresql 上安装Gdal, Geosand吗?proj

标签: pythondjangopostgresqlpostgisgeodjango

解决方案


您需要按照以下步骤在项目中按照文档设置 post GIS:

  1. 在将PostGIS扩展安装到项目之前,在安装了 postgres 的机器上安装GEOSPROJ.4GDAL 。安装文档已包含在链接中。您可以从此处查看 PostGIS 安装要求。

  2. 创建空间数据库。安装上述要求后,创建 PostGIS 扩展。您可以通过在您的 postgres shell 中执行以下代码来做到这一点

    > CREATE EXTENSION postgis;
    

    或者您可以将以下迁移添加到您的项目中

    from django.contrib.postgres.operations import CreateExtension
    from django.db import migrations
    
    class Migration(migrations.Migration):
    
        operations = [
            CreateExtension('postgis'),
            ...
        ]
    

    访问这里了解更多信息

  3. 之后,您可以将以下内容添加到您的settings.py

    DATABASES = {
        'default': {
             'ENGINE': 'django.contrib.gis.db.backends.postgis',
             'NAME': 'geodjango',
             'USER': 'geo',
        },
    }
    
    INSTALLED_APPS = [
        ..
        ..
        'django.contrib.admin',
        'django.contrib.gis',
        ..
        ..
    
    ]
    
    

完成这些步骤后,您可以使用 django PostGIS。有关安装 PostGIS 的更多信息,请访问https://docs.djangoproject.com/en/2.1/ref/contrib/gis/tutorial/#setting-up


推荐阅读