错误是:无法在Windows 10上为GeoDjango导入名称'GDALRaster'

时间:2018-08-05 23:10:44

标签: django python-3.x geodjango postgis-installation

我正在尝试遵循GeoDjango教程。我正在使用Windows-10 64位计算机。我使用的是Python 3.6和Django 1.11,然后按照GeoDjango Windows Documentation进行安装。我已经成功完成了它告诉我的所有步骤,我还下载并运行了OSGeo4W,并以管理员身份成功运行了cmd.exe中的路径

enter image description here

现在回到 Django Tutorial

Create a Spatial Database:我在Postgres Sql中创建了一个数据库

enter image description here

我启动了一个名为 geodjango 的Django项目,并启动了一个名为 world

的应用

我将设置中的数据库更改为

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

我在我的settings.py已安装的应用程序应用程序

中添加了以下内容
'django.contrib.gis',
'world',

我在world应用程序中创建了一个名为data的目录。我下载了zip文件并将其解压缩到我的数据文件夹中。我的数据文件夹中有以下文件 enter image description here

Use ogrinfo to examine spatial data(我不知道该怎么办,所以我忽略了这一部分)

我成功制作了 models.py ,就像在tutorial

中所说的那样
from django.contrib.gis.db import models

class WorldBorder(models.Model):
    # Regular Django fields corresponding to the attributes in the
    # world borders shapefile.
    name = models.CharField(max_length=50)
    area = models.IntegerField()
    pop2005 = models.IntegerField('Population 2005')
    fips = models.CharField('FIPS Code', max_length=2)
    iso2 = models.CharField('2 Digit ISO', max_length=2)
    iso3 = models.CharField('3 Digit ISO', max_length=3)
    un = models.IntegerField('United Nations Code')
    region = models.IntegerField('Region Code')
    subregion = models.IntegerField('Sub-Region Code')
    lon = models.FloatField()
    lat = models.FloatField()

    # GeoDjango-specific: a geometry field (MultiPolygonField)
    mpoly = models.MultiPolygonField()

    # Returns the string representation of the model.
    def __str__(self):              # __unicode__ on Python 2
        return self.name

然后,该教程要求我在遇到以下错误时运行python manage.py makemigrations

Error was: cannot import name 'GDALRaster'

如何解决此错误

我尝试了

pip install gdal 

给我一​​个错误

error: Microsoft Visual C++ 14.0 is required. Get it with "Microsoft Visual C++ Build Tools": http://landinghub.visualstudio.com/visual-cpp-build-tools 

所以我下载了Microsoft Visual C ++ Build Tools。并尝试运行

 pip install gdal 

再次出现错误

`error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\Community\\VC\\Tools\\MSVC\\14.14.26428\\bin\\HostX86\\x64\\cl.exe' failed with exit statu
s 2`

1 个答案:

答案 0 :(得分:0)

尝试了几乎所有内容之后。我通过虚拟机通过Ubuntu 18将操作系统从Windows迁移到Linux(Udemy课程学习Ubuntu),然后简单地完成了

sudo apt安装geos sudo apt安装程序4 sudo apt安装gdal

已安装的postgres sql和pgadmin3(到目前为止,在ubuntu上不容易安装pg admin 4)使用pgadmin3在名为“ geodjango”的数据库上进行了设置,然后 sudo apt安装postgis

然后安装点子 psycopg2和 dj-database-url

我建议远离make&make install方法,因为它们花费的时间太长,并且总是会引发错误。之后,GeoDjango tutorial轻而易举