我一直在尝试设置我的windows计算机,这样我就可以拥有一个带有PostGIS扩展的本地postgreSQL。安装了它之后,我希望能够在将geodjango放到云中之前在本地创建一个项目。我已经在本地机器上使用Django和SQLite DB工作了一段时间,但是由于下一个项目将部分基于基于坐标的数据,我希望设置正确的环境
导入注意:我安装了mini conda,以便在单独的环境中运行。我在工作时确实激活了这种环境“发展”
我曾尝试在线关注geodjango的大部分信息/教程,但无法使其发挥作用。我所做的(主要遵循以下步骤:https://docs.djangoproject.com/en/2.0/ref/contrib/gis/install/#windows):
- 从下载并安装最新(10.3)的PostgreSQL安装程序https://www.enterprisedb.com/downloads/postgres-postgresql-downloads
- 安装后,我还使用应用程序堆栈生成器安装了PostGis
- 我已从安装了OSGeo4Whttps://trac.osgeo.org/osgeo4w/
- 我已经按照geodjango网站上的描述创建了一个批处理脚本(https://docs.djangoproject.com/en/2.0/ref/contrib/gis/install/#windows)并以管理员身份运行它(除了设置python路径的部分,因为python已经在那里了,因为我已经使用python一段时间了)
- 我在psqlshell中尝试了一些命令,我想我已经创建了一个名为geodjango、用户名:***和pass:***的数据库
- 我不知道我是否给了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:\OSGeo4W或C:\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是否正常工作