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 # 这回不报错了