linux安装GDAL(python)

环境:ubuntu 22.04 python --version=3.8.18


问题描述

最近服务器重装系统,好不容易配置完CUDA+cudnn+pytorch的深度学习三件套,结果又被GDAL包的安装卡住

# 尝试的方法是conda安装
conda search gdal
'''
# Name                       Version           Build  Channel
gdal                           2.2.2  py27hae9aa10_1  pkgs/main
..................
gdal                           3.6.2  py38h0daa840_3  pkgs/main
gdal                           3.6.2  py38h2fd6ed0_1  pkgs/main
gdal                           3.6.2  py38h62440d1_2  pkgs/main
gdal                           3.6.2  py38hb4614a1_3  pkgs/main
gdal                           3.6.2  py38hf9a8271_0  pkgs/main
gdal                           3.6.2  py39h0daa840_3  pkgs/main
gdal                           3.6.2  py39h2fd6ed0_1  pkgs/main
gdal                           3.6.2  py39h62440d1_2  pkgs/main
gdal                           3.6.2  py39hb4614a1_3  pkgs/main
gdal                           3.6.2  py39hf9a8271_0  pkgs/main
'''
# 然后我就根据能和我python版本对应的3.6.2进行了安装
conda install gdal=3.6.2

然后就在VS Code中进行导入

from osgeo import gdal
'''
ImportError                               Traceback (most recent call last)
File ~/miniconda3/envs/deepl/lib/python3.8/site-packages/osgeo/__init__.py:30, in swig_import_helper()
     29 try:
---> 30     return importlib.import_module(mname)
     31 except ImportError:

File ~/miniconda3/envs/deepl/lib/python3.8/importlib/__init__.py:127, in import_module(name, package)
    126         level += 1
--> 127 return _bootstrap._gcd_import(name[level:], package, level)

File <frozen importlib._bootstrap>:1014, in _gcd_import(name, package, level)

File <frozen importlib._bootstrap>:991, in _find_and_load(name, import_)

File <frozen importlib._bootstrap>:975, in _find_and_load_unlocked(name, import_)

File <frozen importlib._bootstrap>:657, in _load_unlocked(spec)

File <frozen importlib._bootstrap>:556, in module_from_spec(spec)

File <frozen importlib._bootstrap_external>:1166, in create_module(self, spec)

File <frozen importlib._bootstrap>:219, in _call_with_frames_removed(f, *args, **kwds)
'''

ImportError: libpoppler.so.126: cannot open shared object file: No such file or directory

'''
During handling of the above exception, another exception occurred:

ModuleNotFoundError                       Traceback (most recent call last)
/data2/csy/swin-transformer-classify-main/swin-transformer-classify-main/swin_transformer/train_ly.ipynb Cell 2 line 2
      1 # import geopandas as gpd
----> 2 import osgeo

File ~/miniconda3/envs/deepl/lib/python3.8/site-packages/osgeo/__init__.py:46
     42                 raise ImportError(traceback_string + '\n' + msg)
     43         return importlib.import_module('_gdal')
---> 46 _gdal = swig_import_helper()
     47 del swig_import_helper
     49 __version__ = _gdal.__version__ = _gdal.VersionInfo("RELEASE_NAME")

File ~/miniconda3/envs/deepl/lib/python3.8/site-packages/osgeo/__init__.py:43, in swig_import_helper()
     41         traceback_string = ''.join(traceback.format_exception(*sys.exc_info()))
     42         raise ImportError(traceback_string + '\n' + msg)
---> 43 return importlib.import_module('_gdal')

File ~/miniconda3/envs/deepl/lib/python3.8/importlib/__init__.py:127, in import_module(name, package)
    125             break
    126         level += 1
--> 127 return _bootstrap._gcd_import(name[level:], package, level)
'''

ModuleNotFoundError: No module named '_gdal'


解决方案:

参考文章:http://t.csdn.cn/9XiWF

rm -rf /var/lib/apt/lists/*  # 这句报错,没运行

在Python项目中引入GDAL依赖

pip install GDAL==3.4.1 -i https://pypi.douban.com/simple/

在安装这个大写的GDAL之后
我又用conda安装了小写的gdal

conda install gdal=3.4.1

然后就成了

from osgeo import gdal  # 这回不报错了
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐