Jupyter Notebook使用geopandas绘图保存触发DriverError问题求助
问题排查与解决方法
核心报错原因
你遇到的DriverError: 'maps/USA' not recognized as a supported file format.错误,本质是geopandas读取空间数据时,无法识别你传入路径对应的文件格式:
你当前定义的
MAP_USA_FILE_PATH = os.path.join(MAP_DIR_PATH, 'USA')仅指向了无后缀的文件名/文件夹名,没有明确指定空间数据的后缀格式,geopandas无法自动匹配驱动读取数据。
解决步骤
- 首先打开你的
maps目录,确认你存储的美国空间数据的实际格式:- 如果是Shapefile格式,找到后缀为
.shp的主文件(比如文件名是USA.shp),修改路径定义为:MAP_USA_FILE_PATH = os.path.join(MAP_DIR_PATH, 'USA.shp') - 如果是其他格式,按实际后缀补充即可:GeoJSON补
.geojson、GeoPackage补.gpkg、FlatGeobuf补.fgb,以此类推。
- 如果是Shapefile格式,找到后缀为
- 可以额外添加两行代码校验路径合法性,避免路径拼写错误:
# 打印当前Jupyter运行的工作目录,确认相对路径基准正确 print(os.getcwd()) # 校验你拼接的文件路径是否真实存在 print(os.path.exists(MAP_USA_FILE_PATH))
其他代码优化点
- 你当前代码中同时声明了
%matplotlib inline和%matplotlib notebook两个魔法命令,二者功能冲突,按需保留一个即可:- 仅需要渲染静态图片保留
%matplotlib inline - 需要交互式缩放、拖拽画布保留
%matplotlib notebook
- 仅需要渲染静态图片保留
plt.savefig方法没有definition参数,如果你要指定导出图片的清晰度,替换为dpi=300(数值可自定义)即可。
内容的提问来源于stack exchange,提问作者Ranji Raj
相关产品推荐
相关产品推荐

