7
Help us understand the problem. What are the problem?

More than 3 years have passed since last update.

posted at

updated at

Organization

Rails と jupyter の連携をとても簡単にする railtie の gem を書いた

TL; DR

Gemfile
gem 'jupyter_on_rails'
gem 'ffi-rzmq'

すると

rake jupyter:notebook

ができて

the_screenshot.png

rails が自動ロードされるカーネルが設定された jupyter が開けるようになる。

詳細

モチベーション

jupyter で rails 読み込んで、もろもろの分析(Daru とか)を行うようなタスクをやっていると、どうも jupyter が rails に乗っかっていないような気がするので、それをできる限り自動化したいと思った。

Jupyter Notebook 上で rails c を動かす のように、 jupyter notebook 上に rails をロードする設定を書いてやればいいといえばいいのだが、

  • DRY じゃない。。
  • ユーザーグローバルに存在する iruby カーネルに気を遣う必要がある

のはいやだと思った。

実装方針

Rails なのだから、すべてプロジェクトディレクトリで完結して、 ruby と python さえあればだいたいよろしく動いてくれるようにする。そのために:

  • jupyter は Pipfile で管理されてればそれを使う
  • jupyter の設定 (iruby の設定) は rails プロジェクトルートの中で行う
  • ruby で完結できるものは rake タスクで自動的に一発で
  • Rails を自動読み込みしてくれる jupyter カーネル作る

できあがったものがこちら

利用法

前提条件

  • irubyffi-rzmq の gem が通るように環境を整える (それぞれのページをご参照ください)
  • jupyter コマンドが利用できる。
    • 個人的なおすすめは、プロジェクトルート直下の Pipfile に対して pipenv install jupyter

使い方 -> TL; DR 参照

注意点として、 iruby は session に使う gem を選択できるようになっているので、それにならい

  • ffi-rzmq
  • cztop

のいずれかをアプリケーションの Gemfile に記述することを想定してます。

どちらも存在しないと、 IRuby::Kernel::Session がないよ!みたいなエラーがでます。

所感

spring は魔法。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
7
Help us understand the problem. What are the problem?