トラブルシューティング事例集
計算機利用 (おもに Python プログラム実行) の実習をしていて、
うまくいかない人の話をきいて対策を考えた事例を書きとめておきます。
特定の実行環境に依存する問題が多いです。
おもに、Linux 上で Python (version 3) のプログラムをうごかすばあい
(端末として Windows PC をつかうことを想定していることがある) と、
Windows 上の Anaconda 3 で Python プログラムをうごかしたばあいとが、まざっています。
2021年度から2024年度までこのページにあったものは、つぎのページにあります。
ここには、2025年度 (2025年4月から) 以後に更新された内容を置きます。
図が画面に出ない (Windows 上の TeraTerm から Linux にログインしての実行) [2025-07-13 旧年度版から転記、小改訂]
- 実行条件の補足
- Windows上で Xming をうごかしている。
WindowsからLinuxへのアクセスには (TeraTermの中から) ssh をつかっている。
- 症状
- Windows 上 のTeraTermからLinuxにログインして、Python プログラム (matplotlib をよびだしている)
を動かすことはできるのだが、図が画面に出ない。
- 状況 1. 原因と対策
- TeraTermがXmingを認識しない。Xmingをさきに起動してからTeraTermを起動すれば認識する。
[2024年ごろ以後のバージョンでは、Xmingをあとで起動しても認識するようだが、
もしうまくいかないばあいは TeraTerm をいったん exit してやりなおしたほうがよいだろう。]
- 状況 2. 原因と対策
- TeraTermの「設定」のうち「SSH転送」の
「Xクライアントアプリケーションの転送」の
「リモートのXアプリケーションをローカルのサーバーに表示する」の
チェックがオフだと図が出ない。
これをオンにすれば、TeraTerm実行のその回は図の表示ができる。
- そのうえで、「設定」のうちの「設定の保存」を実行する。
これで、つぎにTeraTermを実行したときにも同様に設定される。
- 状況 2-1. 症状
- TeraTermの「設定の保存」をしたが、その結果が、つぎにTeraTermを起動したときに読みこまれず、
default 設定にもどってしまう。
- 状況 2-1. 原因と対策
- 「設定の保存」のとき、TERATERM.INI ファイルを置く場所を変更していると、
つぎに起動したときに、変更された置き場所を読みにいかないようだ。
TeraTermをインストールしたとき TERATERM.INI が置かれた場所を指定すればよい。
【増田のパソコン (Windows 10, Windows 11) のばあいは、
「c:\Program Files (x86)\teraterm\TERATERM.INI」である。
ただし TeratTerm のバージョンによって「teraterm」の部分が「teraterm5」のことがある。】
- 状況 3. 原因と対策
- Pythonスクリプトの中で (import matplotlib.pyplot as plt を前提として)
plt.show() がないと、画面に表示されない。
(plt.savefig(画像ファイル名) があれば、図は画像ファイルには出力されている。)
画面にも出したいならば、plt.show() を追加する。
- なお、plot.savefig でつくられる画像ファイルが pdf ファイルならば、
(実習用の Linux マシンには gv がはいっているので)
gv コマンドを起動してその pdfのファイル名を指定すれば、
(Xming の起動と TeraTerm の Xに関する設定がうまくいっていれば)
図を見ることができる。
- 同様に、plot.savefig でつくられる画像ファイルが png ファイルならば、
(実習用の Linux マシンには GraphicsMagick がはいっているので)
display コマンドを起動してその png ファイル名を指定すれば、
(Xming の起動と TeraTerm の Xに関する設定がうまくいっていれば)
図を見ることができる。
図が画面に出ないだけでなく、端末操作ができない
(Windows 上の TeraTerm から Linux にログインしての実行) [2025-07-13 未解決]
- 症状
- 図が画面に出ないだけでなく、python コマンドを起動した端末で control-c を打っても
強制終了させることができない。
(特定の端末パソコンでおきている症状。同じルーターにつないだ他のパソコンでは正常に動作している。)
- 応急対策
- 強制終了させるには、別の端末からログインし、「ps aux | grep 自分のユーザー名 | grep python」
などでプロセス番号を確認し、「kill -9 プロセス番号」を実行する。
- 原因解明と対策の試みの途中経過
-
- Python プログラムに図形出力がまったくないばあい、
あるいは、plt.show をつかっておらず、matplotlib.use('Agg') を指定しているばあいには、
Python プログラムは正常にすすむ。
matplotlib をつかっていて、'Agg' がないと、matplotlib が X window の機能を要求し、
端末がそれに応答できないと動作がとまってしまうようだ。
- このパソコンの Windows のネットワーク ファイアウォール機能で、なにかの通信がとめられているようだ。
Windows 11 の「設定」の「プライバシーとセキュリティ」の「Windowsセキュリティ」の
「ファイアウォールとネットワーク保護」の「ファイアウォールによるアプリケーションの許可」を見ると
「Xming X Server」は「パブリック」での通信が許可されているようである。
「設定の変更」で「別のアプリの許可」から TeraTerm を追加し、「パブリック」での通信を許可してみた。
(ディスク上で TeraTermがインストールされているディレクトリをさがし、ttermpro.exe を指定した)。
GraphicsMagick の display コマンドによる画像表示はできるようになった。
しかし、matplotlib をつかう ('Agg' がない) Python プログラムは、やはりとまってしまう。
- もうひとつの可能性として、同じルーターにつないだ複数の端末パソコンが、
Linuxマシンの側では区別できないことがあるのかもしれない。
(もう1台のパソコンではこの困難は生じていないようだが。)
(2025-03-27) 2025-07-13
増田 耕一 (MASUDA Kooiti)