10
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

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

Last updated at Posted at 2019-01-23

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 は魔法。

10
8
11

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
10
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?