Geopandas执行sjoin报错缺rtree/pygeos但已安装相关依赖如何解决
Geopandas空间连接
sjoin已安装rtree/pygeos仍报错的排查方案 排查步骤
- 步骤1:确认Geopandas版本兼容性
运行代码查看当前版本:
若版本低于0.10,先升级Geopandas:import geopandas as gpd print(gpd.__version__)pip install --upgrade geopandas
版本低于0.9的环境不默认启用pygeos,需手动添加配置:gpd.options.use_pygeos = True - 步骤2:验证rtree底层依赖完整性
仅导入rtree不代表功能正常,运行以下代码测试:
若该步骤报错,说明缺失rtree底层依赖import rtree # 测试索引初始化,无报错则功能正常 test_idx = rtree.index.Index()libspatialindex,可通过以下方式修复:
Windows环境优先安装预编译rtree轮子,或直接安装高版本rtree:pip install rtree>=1.0.0
Conda环境执行:conda install libspatialindex rtree - 步骤3:核对包安装环境一致性
多Python环境共存时易出现包安装路径不匹配问题,运行以下代码核对路径:
若三个包的路径不在同一级import geopandas, rtree, pygeos print("Geopandas路径:", geopandas.__file__) print("Rtree路径:", rtree.__file__) print("Pygeos路径:", pygeos.__file__)site-packages目录下,说明安装到了不同环境,切换到代码运行的对应环境重装依赖即可。 - 步骤4:修正sjoin参数写法
Geopandas 1.0+版本已弃用op参数,改用predicate参数指定空间关系,修改调用代码:
部分旧版本参数不兼容会触发误报依赖错误。admin_area_solar_nodes = gpd.sjoin(gdf, switz_admin1, how= 'inner', predicate='intersects')
内容的提问来源于stack exchange,提问作者Dylan Johnson
相关产品推荐
相关产品推荐

