78,480 views
別マシンへのインストール時に再度はまりそうなのでメモしておく。
1. 現象
matplotlibを使ってグラフを表示しようとしたが表示されない。エラーも出ず…
>>> import matplotlib.pyplot as plt >>> plt.plot([1,2,3,4]) >>> plt.show()
うんともすんとも…
2. 原因
matplotlibの backend指定が、デフォルトで画面表示できないもの backend : agg になっていた。
これを画面表示可能な backendに変える必要がある。
例: backend : tkagg
3. 対策
二重三重にはまったので、整理して結論だけをメモしておく。
(1) Tcl/Tk関連パッケージをインストールする。
CentOS, RHELの場合、yum でインストールすればよい。
$ sudo yum install tk.x86_64 tk-devel.x86_64 tkinter.x86_64
Ubuntuの場合、apt で python3-tk をインストールすればよい。
$ sudo apt install python3-tk
※Ubuntuの場合の対策例は、下記投稿にも書いてあります。
(42)【PyTorch】Sin関数を近似するモデルを作る。
(2) matplotlibの設定ファイルの場所を知る。
$ python >>> import matplotlib >>> matplotlib.matplotlib_fname() '/usr/local/lib/python3.12/site-packages/matplotlib/mpl-data/matplotlibrc'
matplotlibrc なる設定ファイルが存在することがわかった。
(3) matplotlibの設定ファイルで backend指定を書き換える。
matplotlibrc なる設定ファイルを開き、編集する。
$ sudo vi /mpl-data/matplotlibrc
パラメータ backend を tkagg に設定する。
#### CONFIGURATION BEGINS HERE
# the default backend; one of GTK GTKAgg GTKCairo GTK3Agg GTK3Cairo
# CocoaAgg MacOSX Qt4Agg TkAgg WX WXAgg Agg Cairo GDK PS PDF SVG
# Template
# You can also deploy your own backend outside of matplotlib by
# referring to the module name (which must be in the PYTHONPATH) as
# 'module://my_backend'
#backend : agg
backend : tkagg
4. 確認結果
できた!
>>> import matplotlib.pyplot as plt >>> plt.plot([1,2,3,4]) >>> plt.show()

5. 面倒な場合はAnaconda
Anaconda(Python distributionの一つ)をインストールすれば、数値計算系の Pythonパッケージをごそっと入れてくれる。
もちろん matplotlibも最初から表示できるように設定されている。
参考1: Python Distributions
参考2: Anaconda
2023.03.26追記
最新の Anacondaのインストール手順をこちら(↓)に記載しました。
(118) Anacondaのインストール (Python 3.10)
ここから下は古い情報です。
linux版インストーラーは、こちらの anaconda公式サイトの下の方からダウンロードできる。
https://www.anaconda.com/download/
もしくは、リンク先から wgetコマンドで取得してもよい。
$ wget https://repo.anaconda.com/archive/Anaconda3-2023.03-1-Linux-x86_64.sh
Anacondaは以下の手順で非rootでもインストールできる。
ダウンロードしたスクリプトファイルに実行属性を付与し、実行する。
$ chmod +x ./Anaconda3-2023.03-1-Linux-x86_64.sh $ ./Anaconda3-2023.03-1-Linux-x86_64.sh
実行時はパスを通す。
$ export PATH=~/anaconda3/bin/:$PATH $ which python3 /home/{user}/anaconda3/bin/python3 $ python3
Anacondaのアップデートは以下を実行する。
$ conda update conda