Windows上的GeoDjango:“找不到GDAL库”/“操作错误:[WinError 126]找不到指定的模块”

我一直在尝试设置我的windows计算机,这样我就可以拥有一个带有PostGIS扩展的本地postgreSQL。安装了它之后,我希望能够在将geodjango放到云中之前在本地创建一个项目。我已经在本地机器上使用Django和SQLite DB工作了一段时间,但是由于下一个项目将部分基于基于坐标的数据,我希望设置正确的环境

导入注意:我安装了mini conda,以便在单独的环境中运行。我在工作时确实激活了这种环境“发展”

我曾尝试在线关注geodjango的大部分信息/教程,但无法使其发挥作用。我所做的(主要遵循以下步骤:https://docs.djangoproject.com/en/2.0/ref/contrib/gis/install/#windows):

  1. 从下载并安装最新(10.3)的PostgreSQL安装程序https://www.enterprisedb.com/downloads/postgres-postgresql-downloads
  2. 安装后,我还使用应用程序堆栈生成器安装了PostGis
  3. 我已从安装了OSGeo4Whttps://trac.osgeo.org/osgeo4w/
  4. 我已经按照geodjango网站上的描述创建了一个批处理脚本(https://docs.djangoproject.com/en/2.0/ref/contrib/gis/install/#windows)并以管理员身份运行它(除了设置python路径的部分,因为python已经在那里了,因为我已经使用python一段时间了)
  5. 我在psqlshell中尝试了一些命令,我想我已经创建了一个名为geodjango、用户名:***和pass:***的数据库
  6. 我不知道我是否给了geodjango用户所有的特权,但我怀疑是这样

所有这些之后,我创建了一个新的django项目,并在settings.py中添加了一些部分:

已安装的应用程序=[
“django.contrib.admin”,
“django.contrib.auth”,
“django.contrib.contenttypes”,
“django.contrib.sessions”,
“django.contrib.messages”,
“django.contrib.staticfiles”,
“django.contrib.gis”,
“名字是雅普”,
]

我在settings.py中也有这个:

数据库={
“默认值”:{
'ENGINE':'django.contrib.gis.db.backends.postgis',
“NAME”:“geodjango”,
“用户”:“****”,
“密码”:“****”,
'主机':'本地主机',
}
}
#詹戈
POSTGIS_版本=(2,4,3)

当我尝试在django中设置数据库时,我运行(在正确的文件夹中):

python manage.py makemigrations

我得到以下错误:

django.core.exceptions.impropertlyconfigured:找不到GDAL库(尝试了“gdal202”、“gdal201”、“gdal20”、“gdal111”、“gdal110”、“gdal19”)。是否安装了GDAL?如果是,请尝试在设置中设置GDAL_LIBRARY_路径。

我试着解决这个问题,但似乎没有任何效果。
有谁能帮我在本地建立这一切吗

更新日期7-3-2018:

  • 我尝试过自己手动安装GDAL(来自:http://www.gisinternals.com/query.html?content=filelist&file=release-1911-x64-gdal-2-2-3-mapserver-7-0-7.zip通用核心组件)
  • 我已经安装了(我假设是)来自的python绑定https://www.lfd.uci.edu/~gohlke/pythonlibs/。但我还是犯了同样的错误
  • 我还尝试将GDAL_库_路径设置为GDAL目录或GDAL数据目录(位于GDAL目录中)

现在我得到以下错误:

OSError:[WinError 126]找不到指定的模块

(当.dll存在时…)

我发现以下内容适用于windows:

  • 运行python检查您的python是32位还是64位
  • 将相应的OSGeo4W(32或64位)安装到C:\OSGeo4WC:\OSGeo4W64
    • 注意:选择Express Web GIS安装并单击下一步
    • 在“选择程序包”列表中,确保已选择GDAL;默认情况下,MapServer和Apache也处于启用状态,可以安全地取消选中
  • 确保设置.py中包含以下内容:

    导入操作系统
    如果os.name='nt':
    导入平台
    OSGEO4W=r“C:\OSGEO4W”
    如果platform.architecture()[0]on “64”:
    OSGEO4W+=“64”
    断言os.path.isdir(OSGEO4W),“目录不存在:”+OSGEO4W
    os.environ['OSGEO4W_ROOT']=OSGEO4W
    os.environ['GDAL\u DATA']=OSGEO4W+r“\share\GDAL”
    os.environ['PROJ_LIB']=OSGEO4W+r“\share\PROJ”
    os.environ['PATH']=OSGEO4W+r“\bin;“+os.environ['PATH']

  • 运行python manage.py检查以验证geodjango是否正常工作

发表评论