You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PyInstaller打包geopandas生成可执行文件时报spatialindex_c.dll缺失错误

问题原因

报错的核心是PyInstaller打包时未自动收录geopandas依赖库rtree的底层动态链接库spatialindex_c.dll,直接运行Python脚本时系统可从当前Python环境中找到该文件,但是打包生成的exe运行时无法在目录中定位到该文件,因此抛出OSError。

解决方法
  • 第一步:定位spatialindex_c.dll文件路径
    该文件默认存放在Python环境的rtree库目录下,如果你使用虚拟环境,路径为:你的虚拟环境目录\Lib\site-packages\rtree\lib\spatialindex_c.dll;如果使用全局Python环境,路径为:C:\Users\当前用户名\AppData\Local\Programs\Python\Python版本号\Lib\site-packages\rtree\lib\spatialindex_c.dll,也可以直接在site-packages文件夹下搜索文件名快速定位。
  • 第二步:打包时指定动态库路径
    运行打包命令时增加--add-binary参数,将找到的dll文件打包进输出目录,示例命令如下(注意替换为你自己的dll路径):
    pyinstaller --add-binary "venv\Lib\site-packages\rtree\lib\spatialindex_c.dll;." sample.py
    
    命令中;.表示将dll文件放在exe可执行文件的同级目录下。
  • 临时验证方案:如果已经打包完成不想重新打包,可以直接把找到的spatialindex_c.dll文件手动复制到dist目录下的sample文件夹中,和sample.exe放在同一级即可正常运行。
注意事项
  • 一定要使用当前打包所用Python环境中的dll文件,避免不同版本的rtree库对应的dll不兼容导致的其他报错
  • 如果后续还出现其他类似的dll缺失报错,大多是geopandas的其他依赖(如fiona、pyproj等)的底层库未被打包,可采用同样的方法将对应动态库添加到打包参数中即可解决

内容的提问来源于stack exchange,提问作者Priyansh Anand

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.08 11:51:03