Conda环境安装GDAL==2.2.2时出现libimf.so导入错误
解决GDAL导入时找不到libimf.so的问题
问题重现
执行from osgeo import gdal时出现以下错误:
from osgeo import gdal Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/home/hug180/.local/lib/python3.6/site-packages/osgeo/__init__.py", line 21, in <module> _gdal = swig_import_helper() File "/home/hug180/.local/lib/python3.6/site-packages/osgeo/__init__.py", line 17, in swig_import_helper _mod = imp.load_module('_gdal', fp, pathname, description) File "/home/hug180/miniconda3/envs/awra_test/lib/python3.6/imp.py", line 243, in load_module return load_dynamic(name, filename, file) File "/home/hug180/miniconda3/envs/awra_test/lib/python3.6/imp.py", line 343, in load_dynamic return _load(spec) ImportError: libimf.so: cannot open shared object file: No such file or directory
libimf.so是Intel编译器的数学库,无法在系统或Conda环境的lib目录中找到。
解决方法
方法1:通过Conda安装Intel运行库
直接安装Intel的数学库依赖,Conda会自动处理路径配置:
conda activate awra_test conda install -c intel intel-openmp mkl
方法2:更换为Conda-Forge编译的GDAL版本
当前的GDAL可能是通过pip或非conda-forge源安装的,依赖Intel编译环境。换成conda-forge的版本,它通常用GCC编译,不依赖Intel专属库:
conda activate awra_test # 先卸载现有GDAL conda remove --force gdal # 若为pip安装,执行:pip uninstall -y gdal # 从conda-forge安装指定版本 conda install -c conda-forge gdal==2.2.2
方法3:手动指定库路径(备选)
如果能找到系统中已安装的libimf.so(比如Intel编译器的安装目录),可以临时添加到库路径:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/intel/lib/intel64 # 替换为实际的libimf.so所在目录
之后再尝试导入GDAL。
内容的提问来源于stack exchange,提问作者Vinayak Huggannavar
相关产品推荐
相关产品推荐

