元バイオ系

元バイオウェット系がデータサイエンスやらを勉強していくブログ。 基本自分用のまとめ。

Windows Subsystem for Linux + Python + Jupyter + Julia

Windows Subsystem for Linux (WSL)で開発環境を構築する

Windows10 Fall Creators Updateにて、WSLが正式版となりました。

以下ではWSLの有効化は事前に行っているものとします。


WSLでは、Linuxが仮想環境ではなくサブシステムとしてWindows上で動く。

細かいことはわからないが、提供されていないカーネルを必要とするソフトウェアはWSL上では動かないらしい。

Linux互換環境といったところか。

Bashシェルやapt、gccコンパイラ、gitといったものは普通に動くので個人的には十分だ。

コンパイルして生成された実行ファイルはOSを跨ぐと当然動かないので、linux環境に統一したいというのが、今回WSL上に環境を構築する理由である。

大抵のスパコンや小規模計算機サーバなどはOSにlinuxを採用しているのでメリットは多い。

WSL上にPython仮想環境を構築する

WSL上にデフォルトのPythonが入っているので、WSL自体を壊してしまわないように仮想環境にAnacondaを使ってPythonを導入する。

pyenvのインストール

直接Anacondaを入れても良いが要らないパッケージを入れたくないので、pyenv経由で入れると良い。

$ sudo aptitude install git
$ git clone https://github.com/yyuu/pyenv ~/.pyenv
$ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
$ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
$ echo 'eval "$(pyenv init -)"' >> ~/.bashrc
$ source ~/.bashrc

*gitが入っている人は1行目はいらない。

Anacondaのインストール

pyenvから入れる。

$ pyenv install --list

いろいろ表示されるが、anaconda~~~ってやつの最新版を探す。

自分の場合はanaconda3-5.0.1が最新だった。

$ pyenv install anaconda3-5.0.1
$ pyenv global anaconda3-5.0.1
$ pyenv rehash

これでAnacondaのインストールは完了。

GUIのインストール

WSLにはGUIがないので、ipythonは動いてもmatplotlibが動かない。

これでは不便なのでX11 GUIを導入する。

ココから以下の二つをダウンロード&インストールする。

  • Xming-fonts-7-7-0-10-setup.exe
  • Xming-6-9-0-31-setup.exe

インストール後、Xmingを起動すると、windowsのタスクバーにXmingが現れるのでカーソルを合わせると

Xming server:0.0

と出ることを確認。こいつをdisplayの出力先に指定してやる。

$ echo 'export DISPLAY=localhost:0.0' >> ~/.bashrc
$ source ~/.bashrc

これでGUIの設定ができた。

matplotlibの導入

以上で大方準備は完了しているが、このままだとmatplotlibのインストールがうまくいかない。 また、jupyterのインストールにも失敗した(確か)。

これらの問題を避けるためにWSLで必要なパッケージをインストールしておく必要がある。

$ sudo aptitude install libqtgui4
$ sudo add-apt-repository ppa:aseering/wsl
$ sudo aptitude update
$ sudo aptitude install libzmq3
$ conda install -c jzuhone zeromq=4.1.dev0

これで動くようになったはず。

あとはconda installするだけ。

$ conda install matplotlib jupyter

numpyはmkl対応のものがデフォルトになっている。

エラーを吐く場合はmklを使わないOpenBLASのものを使うようにする。

$ conda install nomkl
$ conda update --all

Juliaのインストール

WSLでは、Juliaのインストール自体はUbuntuと同じで簡単にできる。

$ sudo add-apt-repository ppa:staticfloat/juliareleases
$ sudo add-apt-repository ppa:staticfloat/julia-deps
$ sudo apt-get update
$ sudo apt-get install julia

JupyterがインストールされていればIJuliaも簡単に導入可能

$ julia
> Pkg.add("IJulia")

まとめ

WSLにPythonの開発環境をpyenvを経由してAnacondaで構築した。

Jupyterの導入に便乗する形でJuliaもインストールした