我按照GeoDjano GDAL Windows Post中提到的所有讨论和步骤,但陷入另一个问题,我无法为GeoDjango提供GDAL。
在 Python控制台(C:\ Python27)中,我能够导入gdal ,但GeoDjano在< gdal.HAS_GDAL 下查询 gdal.HAS_GDAL em> Django / GeoDjango Apps Shell 并在涉及GDAL的任何几何操作上获得错误,例如country.geom.geojson产生:
GEOSException: GeoJSON output only supported when GDAL is installed
我将Python2.7作为C:\ Python27安装,路径环境变量包含:
C:\Python27\; C:\Python27\bin; C:\Python27\scripts; C:\Program Files\GDAL;
和其他环境变量:
GDAL_DATA C:\Program Files\GDAL\gdal-data
GDAL_DRIVER_PATH C:\Program Files\GDAL\gdalplugins
GDAL_LIBRARY_PATH C:\Program Files\GDAL
还尝试将GDAL_LIBRARY_PATH="C:\\Program Files\\GDAL"
放入 settings.py ,但无效。
我正在使用Windows 7 Ultimate x64,Python 2.7.3,Django 1.5.1并尝试安装/重新安装GDAL和Python GDAL Binding二进制文件。
答案 0 :(得分:1)
Python未检测到GDAL安装,因为Windows环境变量设置不正确。
我只能解决这个问题,放弃OSGeo4w并使用GDAL and MapServer。
您只需要编辑libgdal.py
(如 Roberto Ribeiro 所述,如果您使用的是GDAL版本2.x而且可能不是您的情况。< / p>
答案 1 :(得分:0)
问题在于django如何调用GDAL模块:它在GDAL路径中查找特定的GDAL DLL,从可能的DLL(gdal111,gdal110,gdal19等)的有限列表中查找。
问题是,根据您安装GDAL的二进制文件,它可能具有不同的DLL名称。例如,Gohlke的二进制文件生成“gdal201.dll”,它不在django列表中。因此,它无法找到它。
您需要做的是,首先在GDAL安装中找到DLL的名称(应该是GDAL文件夹中最大的文件大小),然后将其添加到位于.. \的libgdal.py列表中。 Python27 \ lib中\站点包\ django的\的contrib \ GIS \ GDAL \ libgdal.py
列表在第26行,应该这样阅读: lib_names = ['gdal111','gdal110','gdal19','gdal18','gdal17']
...或其中的一些变体,取决于您的django版本。只需将您的DLL名称添加到列表中,它就可以了。