Linux下離線安裝Python的GDAL包

前言

最近做空間數據ETL工具時需要在服務器上配置python環境,在安裝GDAL包時各種報錯,google查閱了諸多資料,總結安裝步驟如下:

1. 源碼包下載

GDAL需要依賴PROJ.4和GEOS。 依次下載準備好PROJ.4, GEOS, GDAL的源碼包並解壓。

tar xvf proj-6.2.1.tar.gz
tar xvf geos-3.7.3.tar.bz2
tar xvf GDAL-3.0.4.tar.gz

安裝

  1. 安裝proj.4,
    進入proj.4的解壓目錄下,依次執行:
./configure
make
make install
  1. 安裝geos,
    進入geos的解壓目錄下,依次執行:
./configure
make
make install
  1. 安裝GDAL,
    進入geos的解壓目錄下,依次執行:
./configure
make
make install

然後進入 gdal解壓文件的swig/python/目錄下,執行:

python3 setup.py build
python3 setup.py install

執行完畢後,安裝成功。

驗證

驗證是否可導入gdal的相關包,發現報錯:

>> from osgeo import ogr
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python3.7/site-packages/GDAL-3.0.4-py3.7-linux-x86_64.egg/osgeo/__init__.py", line 41, in <module>
    _gdal = swig_import_helper()
  File "/usr/local/lib/python3.7/site-packages/GDAL-3.0.4-py3.7-linux-x86_64.egg/osgeo/__init__.py", line 24, in swig_import_helper
    _mod = imp.load_module('_gdal', fp, pathname, description)
  File "/usr/local/lib/python3.7/imp.py", line 242, in load_module
    return load_dynamic(name, filename, file)
  File "/usr/local/lib/python3.7/imp.py", line 342, in load_dynamic
    return _load(spec)
ImportError: libgdal.so.26: cannot open shared object file: No such file or directory

查了一下錯誤原因,原來是系統不知道GDAL共享庫的加載路徑。在~/.bashrc中加入一行: export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib,然後執行source .bashrc。問題解決,大功告成。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章