注意:在此之前我已经把rtree的版本降级到0.9.3了,至于最新的版本我目前也没有找到解决办法。目前比较合适的版本似乎是rtree 0.9.3 配 fiona 1.8.19 配 geopandas 0.9.0 配 python 3.8。还有就是Python 3.8和rasterio不兼容,或许不使用rasterio而用gdal代替,然后采用当前可打包的版本是一种解决办法。也可以全部采用pip试试,不要用conda及其环境,而是纯的pip。(参考:https://www.zhihu.com/question/281858271/answer/611320245里面多个答主的回答看一看)还可手动配置所用到的库的路径及其名称。如果上述都不行,要么放弃geopandas,要么只能建议换一种语言了,如C#、C++等。下面进入正文:
出现这个问题的原因是geopandas引用的库rtree找不到spatialindex_c-64.dll导致的,那么解决这个问题的直接办法就是修改源代码,首先根据报错提示(cx_freeza)我找到出错的原文件路径:
D:\ProgramsInD\anaxonda3\Lib\site-packages\rtree\core.py
报错显示出错的行数是129行,找到该行代码:
既然是找到不的原因导致的,那就给它这个文件的路径便是了,直接将源代码改为: