macOS使用ogr2ogr转换CSV到GeoPackage时GDAL报dyld库未加载错误
问题排查与解决方案
核心原因
你使用的ogr2ogr来自miniconda环境,其依赖的libgdal.26.dylib需要libpoppler.91.dylib库文件,但当前conda环境内poppler库版本不匹配或文件丢失,你此前操作的brew工具、Xcode命令行工具均不会修改conda环境内的依赖,因此无效。
修复步骤
步骤1:确认conda环境状态
首先激活你当前使用的conda环境,执行如下命令查看poppler版本:conda list poppler如果返回的poppler版本号不是0.91.x,即可确认是版本升级后旧版依赖库被删除导致的问题。
步骤2:修复依赖匹配,二选一即可
方案A:重装当前环境的GDAL自动补全依赖
执行如下命令强制重装GDAL,conda会自动安装匹配版本的poppler依赖:
conda reinstall -c conda-forge gdal方案B:创建独立干净的GDAL运行环境
如果不想改动当前环境的包版本,可创建独立环境运行命令:
# 创建带GDAL的新环境 conda create -n gdal_workenv -c conda-forge gdal # 激活环境 conda activate gdal_workenv # 再执行你的CSV转GPKG命令即可步骤3:验证修复
执行如下命令,无报错即说明依赖修复完成:ogr2ogr --version
此前操作无效的原因说明
brew安装的GDAL和conda环境内的GDAL是完全独立的两套工具,你当前终端默认优先调用miniconda目录下的ogr2ogr,因此修改brew包、Xcode工具链不会生效。此前otool操作报错是因为你没有将示例命令中的exefile替换为实际的libgdal.26.dylib文件路径,且手动修改动态库rpath属于高危操作,极易引发其他依赖冲突,不建议使用。
内容的提问来源于stack exchange,提问作者Ishan Srivastava
相关产品推荐
相关产品推荐

