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が動かない。
ココから以下の二つをダウンロード&インストールする。
インストール後、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もインストールした