Python运行GDAL的gdal2tiles命令出现两类报错问题求助
gdal2tiles运行报错解决方案
两个报错的核心原因是没有使用OSGeo4W配套的运行环境,具体解决方法如下:
方案一:使用OSGeo4W专属Shell运行(推荐)
OSGeo4W安装完成后会生成「OSGeo4W Shell」快捷方式,打开该Shell后系统会自动配置好GDAL、Python相关的所有环境变量,直接运行如下命令即可:
gdal2tiles -p mercator -z 0-10 -w none --processes=4 -r near --exclude --xyz -a 0.0 -n C:\myMap.geotiff C:\xyzTiles\ --config GDAL_PAM_ENABLED NO
不需要添加python3 -m前缀,也不需要指定脚本绝对路径。
方案二:在系统默认终端中运行
如果需要在系统自带的cmd/PowerShell中执行命令,需要用OSGeo4W配套的Python解释器调用gdal2tiles模块,命令格式如下:
C:\OSGeo4W\apps\Python37\python.exe -m gdal2tiles -p mercator -z 0-10 -w none --processes=4 -r near --exclude --xyz -a 0.0 -n C:\myMap.geotiff C:\xyzTiles\ --config GDAL_PAM_ENABLED NO
不要直接执行gdal2tiles脚本的绝对路径,会因为缺少Python模块运行上下文触发AttributeError: module '__main__' has no attribute '__spec__'报错。
异常排查
如果上述方案执行后仍有报错,按以下步骤检查:
- 重新打开OSGeo4W安装程序,搜索
gdal2tiles组件,确认该组件已被勾选安装,部分精简安装默认不会包含该工具 - 确认调用的Python解释器路径和OSGeo4W安装的Python路径一致,不要使用系统中其他版本的Python调用gdal2tiles
内容的提问来源于stack exchange,提问作者Koba
相关产品推荐
相关产品推荐

