Docker上でmatplotlibを使う
ビジネスPython超入門という本の機械学習の章に取り組んでいた時、dockerを使っていたため下記のコードの実行時にエラーが出たのでそれの対処のためのメモ
from PyQt5 import QtCore, QtGui, QtWidgets
ImportError: libGL.so.1: cannot open shared object file: No such file or directory
エラーコードの最後のほうで何にやらモジュールがインポートできないと言っていたので調べてみたら次のような記事を見つけた
https://qiita.com/lmond/items/cf72a4a6782b06fde0ac
dockerでのpythonの開発環境を用意したときにAnacondaをインストールしていたことが原因みたい
この記事通りに進めて、次のコマンドを実行したらエラーになった
conda install --channel https://conda.anaconda.org/bpentz pyqt5
何でだろうと少し考えてみたら、単純にインストールすべきOSが違うだけだった
そこで、LinuxにPyQt5をインストールする方法を探して、次のコマンドをdocker上で実行すればよいと分かった
sudo apt-get install python3-pyqt5
https://qiita.com/itoppy18/items/340efff6c079a00b04fc
import PyQt5.QtWidgets
を実行したらエラーが出ることなく、無事に通った
よし!これでグラフを描画できると意気揚々と最初のプログラムを実行したらまた別のエラーが出てきた
raise RuntimeError('Invalid DISPLAY variable')
RuntimeError: Invalid DISPLAY variable
次のコードの最初の2行がリンク先で記載されていたサーバー側で図の作図、出力まで行うようにするもの
https://qiita.com/TomokIshii/items/3a26ee4453f535a69e9e
プログラムを実行すると同じ階層にできる"plot.png"が実行結果となる