LoginSignup
4
5

More than 5 years have passed since last update.

iruby (jupyter) でrubyのバージョンを切り替える手順

Last updated at Posted at 2016-09-27

iRuby(Jupyter上で動くruby)を利用する際にRubyのバージョンを切り替える手順について

動作環境

MacOS ElCapitan
IRuby 0.2.9

手順

jupyterにkernelとして登録されているirubyはjupyterにはフルパスで登録されるので、rbenvなどでrubyを切り替えても追従しない。
jupyterに新しいバージョンのrubyを登録する必要がある。

rbenv local 2.3.1   # 新しいバージョンのrubyへの切り替え。このバージョンでirubyはすでにインストール済みとする

image
この状態ではkernelに登録されているRubyのバージョンは変わっていない。

iruby register --force   # 新しいバージョンへ切り替わる
jupyter kernelspec install ~/.ipython/kernels/ruby
iruby notebook           # jupyterを起動

image

ちなみに初めて iruby notebook を起動する時に、その時点のRubyがkernelとして登録される。

何が起きているか?

irubyのソースを読んでみる。
irubyコマンドを実行した際の処理のコードは以下の場所にある。

register_kernelメソッド内でRubyのパスを書いたjsonファイルを作成し、~/.ipython/kernels/ruby/kernel.jsonに保存している。

jupyterはkernelの情報をjupyter --pathで表示されるパスから読んでいる。
2016年9月現在、jupyter 4.1.1ではkernelの情報を "~/.ipython" 以下ではなく "~/Library/Jupyter"から読む。
おそらくiruby 0.2.9は昔のjupyterの仕様を想定しているため、kernel情報を"~/.ipython"以下に書き出すのだが、最新のjupyterではそのパスは認識されない。
そのため、jupyter kernelspecコマンドで"~/.ipython"のパスをkernelとして登録している。

4
5
0

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
4
5