使用Shapely导入geometry时遇OSError:无法找到geos_c.dll求助
解决Shapely导入时找不到geos_c.dll的问题
我之前在32位Python环境下也踩过完全一样的坑!给你几个亲测有效的解决思路:
方法1:卸载重装Shapely(优先推荐)
单独安装geos包其实没什么用,因为Shapely本身已经依赖GEOS库,直接pip装的geos可能和Shapely版本不兼容,或者没匹配上32位Python的架构。试试完全卸载后重装Shapely:
- 先执行卸载命令:
pip uninstall -y shapely geos - 然后清除缓存重新安装Shapely,确保拿到适配32位Python的版本:
pip install shapely --no-cache-dir
重装后Shapely会自带正确的geos_c.dll,一般就能解决路径匹配问题。
方法2:手动添加GEOS库的路径到环境变量
如果方法1没用,先找到geos_c.dll的实际位置——它大概率在Shapely的安装目录里,比如C:\Users\skoft\AppData\Local\Programs\Python\Python37-32\Lib\site-packages\shapely\DLLs。
你可以选择两种方式:
- 临时在代码开头添加路径(不用修改系统环境变量):
import os # 替换成你实际的DLL存放路径 os.environ['PATH'] += r';C:\Users\skoft\AppData\Local\Programs\Python\Python37-32\Lib\site-packages\shapely\DLLs' from shapely import geometry - 或者把这个路径添加到系统的PATH环境变量里,这样所有Python脚本都能自动找到这个DLL。
方法3:手动放置geos_c.dll到指定路径
错误提示里显示程序在找C:\Users\skoft\AppData\Local\Programs\Python\Python37-32\Library\lib\geos_c.dll,你可以:
- 找到你的
geos_c.dll文件(比如从Shapely的DLL目录里复制) - 如果
Library\lib目录不存在,手动创建这个路径 - 把
geos_c.dll粘贴到这个目录里,再重新执行导入语句。
内容的提问来源于stack exchange,提问作者user9740907
相关产品推荐
相关产品推荐

