WSLでGUIのソフトは使えないものか
WSLをダウンロードして, Anacondaをダウンロードして,
matplotlibで意気揚々とサインカーブを描こうと思ったら...
無事にエラーを吐かれました.
どうしてプロットできないのか
この症状は, WSL自体が出力するディスプレイを認識できないことが原因です.
そこで今回はVcXsrvというソフトをダウンロードして,
出力先のディスプレイを作成しちゃいましょう.
追記
先日、WSL2というものが新しく発表になりました。
しかしながらHyper-Vを用いている性質上か、IPアドレスの設定が難しい状況にあります。
使いやすい方法が確立されるまではWSL1を用いていたほうが無難かと思われます。
一応WSL2についての記事を作成いたしましたので、参考にしていただけたらと思います。
VcXsrvのインストール
つぎのサイトからVcXsrvをインストールしてください
sourceforge.net
特に設定はありませんので, ポチポチとしていれば大丈夫だと思います.
VcXsrvの自動起動設定
- xlaunch.exeという実行ファイルがあると思いますので, 起動します.
- multiple window を選んで, 次へを選択します.
- start no client を選んで, 次へを選択します.
- clipboard を使用したければ, clipboardにチェックを入れて, 次へを選択します.
- Save configuration を押して, どこかアクセスしやすい場所(デスクトップとか)に保存してください.
- 完了を押してxlaunchを終了します.
- 続いて,
Windowsキー + r
を押して, shell:startupと入力して検索します. - スタートアップというフォルダが開きますので, ここに先ほどxlaunchを用いて作成したファイルを移動してしまってください.
これで, 自動的にVcXsrvがパソコンの起動時に立ち上がるようになりました.
WSL上のディスプレイの設定
最後にVcXsrvの存在をWSLに教えてあげましょう.
- WSLを開きます.
- vim や nano などで
~/.bashrc
を開きます. - 開いた.bashrcの最後の行に, 以下のコマンドを追記して保存してください.
export DISPLAY=:0.0
最後にWSLを再起動すると, 先ほど編集した.bashrcが読み込まれて, 設定が反映されます.
最後に
以上でmatplotlibもgnuplotも無事に使えるようになったと思います.
またほかのGUIのプログラムについても使えるようになったかと思いますので, ぜひ楽しんでみてください.
おまけ
以下のサイトを参考にさせて頂きました.
とても素晴らしいWSLをご紹介されているので, 是非ご覧ください.
お前らのWSLはそれじゃダメだ