gdalをインストールする方法【エラー回避】

衛星画像を扱うサンプルコードに必要だったgdalというライブラリが上手くインストールできずに手こずったので、エラー出さずにインストールする方法を備忘録かねて紹介します。

スポンサーリンク

結論

Releases · cgohlke/geospatial-wheels (github.com)

ここから自分のPythonバージョンに合致するwhlファイルをダウンロードします。(例:Python 3.10を使っているならbasemap-1.4.1-cp310-cp310-win_amd64.whlを選べばok)

pip install ‘ダウンロードしたwhlのパス’

を実行すればインストールできました。

importする際は、from osgeoからimport することに注意しましょう。

#import gdal ←間違い
from osgeo import gdal ←osgeoからimportする

普通にpipすると発生するエラー

私の環境では、pip install osgeoを行うと以下のエラーが発生しました。

Running setup.py install for osgeo ... error
  error: subprocess-exited-with-error

  × Running setup.py install for osgeo did not run successfully.
  │ exit code: 1
  ╰─> [25 lines of output]
      running install
......................
 Exception: In order to be able to run `from osgeo import gdal`,
      You were probably trying to install `gdal` by running `pip install osgeo`.
      Instead, you should either `pip install gdal` or replace `osgeo` with `gdal` in your requirements.
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
error: legacy-install-failure

× Encountered error while trying to install package.
╰─> osgeo

最後にosgeoではなくgdalをインストールしてみろと書いてあったので、pip install gdalを試すと以下のエラーが出ました。

error: subprocess-exited-with-error

  × Running setup.py install for gdal did not run successfully.
  │ exit code: 1
  ╰─> [145 lines of output]
      WARNING: numpy not available!  Array support will not be enabled
      running install

...................................
      gnm_wrap.cpp
      gdalconst_wrap.c
      gdal_wrap.cpp
      ogr_wrap.cpp
      osr_wrap.cpp
      extensions/gdalconst_wrap.c(3013): fatal error C1083: include ファイルを開けません。'gdal.h':No such file or directory
      extensions/gnm_wrap.cpp(3153): fatal error C1083: include ファイルを開けません。'gdal.h':No such file or directory
      extensions/ogr_wrap.cpp(3181): fatal error C1083: include ファイルを開けません。'gdal.h':No such file or directory
      extensions/osr_wrap.cpp(3213): fatal error C1083: include ファイルを開けません。'cpl_string.h':No such file or directory
      extensions/gdal_wrap.cpp(3222): fatal error C1083: include ファイルを開けません。'cpl_port.h':No such file or directory
      error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio\\2022\\BuildTools\\VC\\Tools\\MSVC\\14.39.33519\\bin\\HostX86\\x64\\cl.exe' failed with exit code 2
      [end of output]

pipでは無理そうだったので色々調べた結果、whlファイルをダウンロードしてpipすれば解決できる模様。

感想

参考にしたサイトの全てでダウンロード先のリンクは切れていましたが、何とかgithubのリポジトリ見つけられて良かったです。