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を設定しておくと使える(当たり前)
# 前回セットアップしたときはどう回避したんだろう?覚えてないな…