LoginSignup
13
9

More than 3 years have passed since last update.

Cling on Jupyter [C++] 環境づくり

Last updated at Posted at 2018-03-03

はじめに

2020/06/29追記 : 以下の内容は古く 2020/06/29 現在では再現できないものとなっています. (バイナリ配布ページからバイナリが消えていたため.)

 C++がJupyter上で動かせるという話を聞いて実行してみたいと思ったのですが環境構築に手間取ったので書いておきます。(他の記事に書いてあるとおりにやったらエラーが出て断念)
 このやり方は記事を探してもがいていて、手法を組み合わせたらなんとなくできたものなので正規のやり方では無い可能性の方が高いです。そのことを承知の上ご覧ください。
Cling - The Interactive C++ Interpreter - GitHub

環境

  • Ubuntu16.04 LTS
  • Python3 (install済み)
  • Jupyter (install済み)

Clingダウンロード

Cling's Web Page
上のリンクがClingの公式ページです。HOMEの下の方にDOWNLOADがあるので、そのリンク先から自分のOSに合ったものをダウンロードします。
 自分はcling_2018-03-02_ubuntu16.tar.bz2をホームディレクトリにダウンロードしました。

~/cling_2018-03-02_ubuntu16.tar.bz2

まず、解凍・展開します。

$ cd ~
$ bzip2 -d cling_2018-03-02_ubuntu16.tar.bz2
$ tar xvf cling_2018-03-02_ubuntu16.tar

すると、cling_2018-03-02_ubuntu16/ができます。

Cling実行

まずは普通にClingを実行してみます。

$ ./cling_2018-03-02_ubuntu16/bin/cling

****************** CLING ******************
* Type C++ code and press enter to run it *
*             Type .q to exit             *
*******************************************
[cling]$ 

指示どおり.qあるいはCtrl+cを実行すると抜けます。
次にこのパスを通しておきましょう。は自身のユーザー名に置き換えてください。

$ export PATH=/home/<username>/cling_2018-03-02_ubuntu16/bin:$PATH

 ただ、これではシェルを閉じてしまえばまた実行しなければならなくなるのでログインシェルの一番下あたりに上の一文を追加しておくといいと思います。
 たとえば、bashを使っていれば.bashrcファイルを開いて一番下に追記

Jupyter-kernel準備

それではJupyter上で実行できるようにします。
(sudo権限が無いといけなかったので更新しました。

$ cd cling_2018-03-02_ubuntu16/share/cling/Jupyter/kernel
$ sudo pip3 install -e .
$ sudo jupyter-kernelspec install --user cling-cpp11
$ sudo jupyter-kernelspec install --user cling-cpp14
$ sudo jupyter-kernelspec install --user cling-cpp17

Jupyter実行

$ cd
$ jupyter-notebook
# (または jupyter notebook)

さて、ここまでやればJupyter上で実行できることが確認できます。
ちゃんとKearnelもReadyになりました。

  • C++11
  • C++14
  • C++17

が確認できればOKです。
cling-on-jupyter.png

cling-on-jupyter_sample.png

今回はこんな感じです。
お疲れ様でした。

参考

C++ Kernel for Jupyter Notebook

13
9
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
9