【Pyinstaller/cx_freeza已解决】oserror: could not find or load spatialindex_c-64.dll

博客讲述了在使用Pyinstaller或cx_Freeze打包Python项目时遇到的oserror问题,具体是由于geopandas依赖的rtree库无法找到spatialindex_c-64.dll文件。作者推荐将rtree版本降级到0.9.3,并提供了修改源代码直接指定dll文件路径的解决方法。此外,还建议考虑更换编程语言或使用gdal代替rasterio。通过这些步骤,问题最终得到了解决。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

注意:在此之前我已经把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行,找到该行代码:
在这里插入图片描述
既然是找到不的原因导致的,那就给它这个文件的路径便是了,直接将源代码改为:

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱吃柚子的梨

你的鼓励将是我创作的最大动力~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值