WSL(Windows System for Linux)を利用してC++用Jupyterカーネルであるxeus-clingをWindows10搭載マシンで動かしてみた際のメモです。(2018/4/15実行)
OSはWindows10 Pro バージョン 1709
WSLのディストリビューションはDebianを採用しました。
#WSLのインストール
まずはWSLをインストールします。
WSLのインストール手順については以下などを参照してください。
https://qiita.com/Brutus/items/f26af71d3cc6f50d1640
(2018/1/25 更新)
http://qiita.com/Aruneko/items/c79810b0b015bebf30bb
(2017/11/2 更新)
#Jupyterの準備
Jupyterを使うために、WSL上にpyenvとAnacondaをインストールします。
以下はhttps://qiita.com/yaju/items/1130c56abe64ec9d9827
(2018/1/13 更新)
及び、https://qiita.com/dd511805/items/23891da61559405fd5f6
(2017/1/27 更新)
より抜粋しました。
###pyenvのインストール
$ sudo apt-get install aptitude
$ 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
###Anacondaのバージョン確認
$ pyenv install --list
して、表示される中からAnaconda3の最新バージョンを確認してください。
(本記事作成時点ではAnaconda3-5.1.0が最新でした)
###Anacondaのインストール
バージョンは適宜変更してください
$ pyenv install anaconda3-5.1.0
$ pyenv global anaconda3-5.1.0
$ pyenv rehash
(筆者の環境では、ここで30分以上かかりました)
###Jupyterの実行
Anacondaが正常にインストールされていればJupyter notebookが実行できるはずなので、
ここで一度試してみましょう。
$ jupyter notebook
を実行すると以下が表示されます。
Copy/paste this URL into your browser when you connect for the first time,
to login with a token:
http://localhost:8888/?token=8ff994a9c058ccd4509216f1f37ed3760a0f9d1a49bc9de7
表示されている長いクエリ付きURLをお使いのブラウザに入力してください。
#xeus-clingのインストール
Jupyterが無事実行できれば、次にxeus-clingをインストールします。
QuantStack/xeus-cling: https://github.com/QuantStack/xeus-cling
上記のページのInstallationと同様の手順でインストールすることができます。
WSLを起動して
$ conda create -n cling
$ source activate cling
$ conda install xeus-cling notebook -c QuantStack -c conda-forge
を実行すればOKです。
(筆者はここでも30分以上かかりました)
#Hello World
最後に実際にテストプログラムを動かしてみます。
まずJupyterを起動します。
すると、以下のようにC++11、C++14、C++17のオプションが増えているはずです。
とりあえずここではC++17で新しいNotebookを作成します。

テストとして、以下のプログラムをセルに入力します。
#include <iostream>
std::cout << "Hello World" << std::endl;
実行結果が以下のようになっていれば無事導入できているはずです。

以上です。
問題、修正すべき点があればお知らせください。