当Python可以时,Geodjango找不到GDAL

时间:2014-04-21 12:25:40

标签: django python-2.7 windows-7-x64 gdal geodjango

我按照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二进制文件。

2 个答案:

答案 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名称添加到列表中,它就可以了。