PyGMTをAnacondaに入れて若干躓いた話
目次
新しいラップトップPCにAnacondaで環境を作っている時に生じた問題
「PyGMT
で描画が上手くいかない…」
無理やり感はあるけど何とか解決.
問題
Anacondaのbase
環境で立ち上げたJupyterLabから,非base
環境のghostscript
を動かせない.
なお,当該非base
環境のIPythonカーネルは正しく登録済みで,notebookの環境を正しく選択.
import pygmt
fig = pygmt.Figure()
fig.coast(region=[-69, -68, 43.75, 44.75], shorelines=True)
fig.show()
=> GMTClibError
が返ってきた
psconvert [ERROR]: Cannot execute Ghostscript (gs).
Traceback (most recent call last):
...
GMTCLibError: Module 'psconvert' failed with status code 79:
psconvert [ERROR]: Cannot execute Ghostscript (gs).
ちなみに,非base
環境で立ち上げたJupyterLabだと普通にghostscript
が動く..
環境
- WSL2 (Windows Subsystem for Linux): Ubuntu 22.04.2
- Anaconda v2023.03 (Python 3.10)
セットアップ
Anacondaのbase
環境以外にpygmt
という環境を作成して,JupyterLab上でgmt
の図を描画したい.
pygmt
環境の作成方法は次の通り.
- ライブラリのインストール
mamba create --name pygmt python=3.11 numpy pandas xarray netcdf4 packaging gmt mamba activate pygmt mamba install jupyter mamba install pygmt -c conda-forge
- 環境変数の設定
export GMT_LIBRARY_PATH=$HOME/anaconda3/envs/pygmt/lib >> ~/.bashrc source ~/.bashrc
- IPythonカーネルの追加
mamba activate pygmt ipython kernel install --user --name pygmt
base
はPython 3.10系だが,pygmt
はPython 3.11系で環境構築.
解決法
base
環境にもghostscript
をインストール
IPythonカーネルは正しく設定できているのに,
base
で立ち上げたJupyterLabからpygmt
環境のコマンドが通らないという問題らしい.
でも,
import pygmt
は正しく通っているから(base
にPyGMTは入れていない),恐らくターミナルがbase
環境のままなんだろう.
ということで,base
環境にもghostscript
をインストールすると,エラーが消え,セル下に図が描画できた.
これはAnacondaかJupyterLabの問題だと思うので,これ以上は踏み込まないことにしよう…
まとめ
base
環境で立ち上げたJupyterLabは,非base
環境のコマンドが使えない場合があるbase
にも同じコマンドを使えるようにインストール,もしくはPATHを設定しておくと使える(当たり前)
# 前回セットアップしたときはどう回避したんだろう?覚えてないな…