Vagrant環境のCentOS6.9でGUIを使うには

tkinterを使おうとしたところ、エラーが出たのでちょっと調べてみました。
下部がそのエラーです。

$ python -m tkinter
Traceback (most recent call last):

 (中略)

ImportError: No module named '_tkinter'

tkinterというモジュールがないと怒られています。tkinterはデフォルトで入っているはずなのですが…
とりあえず再インストールしてみます。

$ pyenv uninstall 3.5.2
$ pyenv install 3.5.2

再インストールしました。これでいけるか…?

$ python -m tkinter
[vagrant@localhost Python]$ python -m tkinter
Traceback (most recent call last):

 (中略)

_tkinter.TclError: no display name and no $DISPLAY environment variable

こんどは違うエラーがでました。ディスプレイの名前がない且つ、ディスプレイの環境変数がないと怒られているのでしょうか(ガバ英訳)
調べると画面を指定するDISPLAY環境変数がないようです。私の場合は画面自体がないようなのでXmingというソフトを使って画面を転送します。

                   
設定の際、この記事を参考にしました。
msyksphinz.hatenablog.com
 
まず、Vagrantfileに以下を追加します。

config.ssh.forward_x11 = true

これでWindowのポートフォワードを設定できるようになりました。ようするに画面のデータを仮想マシンからXmingに送る設定をしたということです。(あってるか不安だけど)
次に、Xmingでサーバーの設定をします。
あとはPuTTYSSH-X11X11フォワーディングを有効にしてやれば…

f:id:edwasper:20180624163108p:plain

できました。2時間ぐらい使ってしまったー