您的位置:

最佳方案处理django GDALException("Unrecognized input type for GDAL/OGR Driver: %s" % type(dr_input))

  发布时间:2023-04-04 07:07:48
报错的原因这个错误通常是由于在使用Django和GDAL/OGR驱动程序时,传递给驱动程序的输入类型无法识别导致的。- 缺少GDAL/OGR库文件。- 确保已经安装并正确配置了GDAL/OGR库文件。使用例子一个简单的例子是在使用Django和GDAL/OGR驱动程序读取Shapefile文件时,可能会出现以下错误在这种情况下,可能是因为传递给驱动程序的输入不是字符串类型而是其他类型,而驱动程序不能识别。

报错的原因

这个错误通常是由于在使用Django和GDAL/OGR驱动程序时,传递给驱动程序的输入类型无法识别导致的。可能的原因包括:

- 传递给驱动程序的输入变量的类型不正确。

- 使用了不支持的GDAL/OGR驱动程序。

- 缺少GDAL/OGR库文件。

请检查你的程序是否存在上面列出的问题, 需要结合你的具体代码和环境来分析,建议调用栈信息

另外还有一种可能就是缺少了GDAL相关环境变量没有配置好,比如GDAL_LIBRARY_PATH 和 GDAL_DATA . 请确保这些环境变量已经正确配置,另外检查你的程序是否使用了正确的版本的GDAL/OGR库。

如何解决

解决方法包括:

- 检查并确保传递给驱动程序的输入变量类型正确。

- 使用正确支持的GDAL/OGR驱动程序。

- 确保已经安装并正确配置了GDAL/OGR库文件。

- 确保GDAL相关环境变量正确配置好了,比如 GDAL_LIBRARY_PATH 和 GDAL_DATA

- 使用正确版本的GDAL/OGR库

建议在检查以上各个步骤后,根据报错信息进行调试,有些问题可能是暂时的,比如库文件丢失,重新安装即可解决。

使用例子

一个简单的例子是在使用Django和GDAL/OGR驱动程序读取Shapefile文件时,可能会出现以下错误:


from django.contrib.gis.gdal import DataSource
ds = DataSource('path/to/shapefile.shp')  #GDALException("Unrecognized input type for GDAL/OGR Driver: %s" % type(dr_input))

在这种情况下,可能是因为传递给驱动程序的输入不是字符串类型而是其他类型,而驱动程序不能识别。

可以通过将路径转换为字符串来解决这个问题:


from django.contrib.gis.gdal import DataSource
ds = DataSource(str('path/to/shapefile.shp'))

另外你可能还需要检查你是否在正确的环境中,有没有安装GDAL库,GDAL环境变量是否正确配置等

另外,如果你在运行Django项目时遇到了这个错误,可以尝试在你的settings.py文件中检查GDAL_LIBRARY_DIR 和 GDAL_DATA配置是否正确


GDAL_LIBRARY_DIR = '/path/to/gdal/lib'
GDAL_DATA = '/path/to/gdal/data'

如果你在使用virtualenv,你可能需要在activate脚本中添加对应的配置,

这些步骤都是在尝试解决GDALException("Unrecognized input type for GDAL/OGR Driver: %s" % type(dr_input)) 的方案,综合上面的解释,可能需要多次尝试和调试,在代码调用栈和环境配置上。