rubyでjupyter notebookを使う

rubyでjupyter notebookが使えるというのを発見したので,環境構築してみたがはまったので,改めて環境構築方法を記す.

環境

MacBookPro
macOS Sierra 10.12.3

やったこと

※ここでやったことはうまくいかなかった方法で詰まっている方向けなので,これから環境構築する方は後半を見てください.

とりあえず見つけた以下の記事通りにやってみた.

Railsエンジニアに役立つJupyter NotebookとiRuby - クックパッド開発者ブログ

$ pip install jupyter # python, pip環境が整っていない方は別途整えてください
$ gem install iruby
$ ruby register # これが動かない
$ iruby register # たぶんこう
$ jupyter notebook # jupyter notebookが立ち上がり,rubyを選択できるようになってる!

無事,jupyter notebookを立ち上げ,rubyカーネルを選択することでできるようになった.
しかしここで問題が.
rubyカーネルを立ち上げ使おうと思ったらうまく立ち上がらない.
ターミナルをみると以下のようなエラーが.

dyld: lazy symbol binding failed: Symbol not found: _zmq_poll
  Referenced from: /usr/local/lib/libzmq.dylib
  Expected in: flat namespace

dyld: Symbol not found: _zmq_poll
  Referenced from: /usr/local/lib/libzmq.dylib
  Expected in: flat namespace

ググってるといろいろな解決法が挙げられていたが最終的には以下の記事が解決してくれた.

Mac で IRuby Notebook 環境を構築する方法 2017年版 - Qiita

ちなみに EI Capitanであればこの記事を見ると良さそう.

結局どうすればよいのか

いろんな記事でrbczmqをインストールするよう書いてあるがこれがコケてめんどくさい.
上の記事によるとインストールする必要がないようで,以下のようにするとうまくいく.

$ brew uninstall --ignore-dependencies zeromq # installしていたらuninstallする
$ brew uninstall czmq # 上に同じ
$ brew install zeromq --HEAD # --HEADをつけて最新版を取得する必要がある!!!
$ brew install czmq --HEAD
$ gem install cztop # rbczmqの代わり?

次に,cztop supportをインストールする.

$ gem install specific_install
$ gem specific_install https://github.com/SciRuby/iruby.git
$ iruby register --force

これで環境は整った!!

$ jupyter notebook

起動後,rubyカーネルを選択すればOK!
これで快適なrubyライフが送れますね!!