nacyot profile image

[RORLab 발표] 주피터(Jupyter) - IRuby Notebook 보충

프로그래밍 에디터 2015년 04월 15일 발행

IPython은 Python REPL의 확장 구현이다. 0.12 버전부터 Notebook이라는 이름으로 웹 인터페이스를 지원하고 있다. 또한 파이썬 뿐만 아니라 다른 언어를 실행할 수 있는 다양한 커스텀 커널을 지원하고 있다. IRuby는 IPython의 루비(Ruby) 커널 구현체로 이를 사용해 IPython Notebook에서 Ruby 코드를 실행하고 문서를 작성하는 게 가능하다.

이 글은 2015년 4월 14일 RORLab에서 발표한 내용을 보충하기 위한 글로 IRuby 설치, 실행 및 발표 레퍼런스를 소개한다.

발표자료

IRuby Notebook 원본 발표자료(reveal.js)

https://speakerdeck.com/nacyot/jupyter-iruby-notebook

IRuby 설치하기

(어제 올렸던 처음으로 소개했던 설치법에는 몇 가지 문제가 있습니다. 유상민 님 지적으로 jsonschema 설치 및 SciRuby/iruby 설치 부분을 보충합니다. 유상민 님께 감사드립니다)

ZeroMQ 설치하기

ZeroMQ를 설치한다.

# Mac OSX
$ brew install zeromq --universal

# Ubuntu
$ apt-get install libzmq3

python 환경 구축 및 ipython 설치

pyenv를 설치한다.

# Mac OSX
$ brew install pyenv

# Ubuntu
$ git clone https://github.com/yyuu/pyenv.git ~/.pyenv

pyenv를 셸에 설정해준다. zsh을 사용한다면 .bash_profile.zshrc로 바꿔준다.

$ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile
$ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile
$ echo 'eval "$(pyenv init -)"' >> ~/.bash_profile

파이썬 3.4.3을 설치하고, 사용하도록 설정한다.

$ pyenv install 3.4.3
$ pyenv global 3.4.3

관련 라이브러리와 IPython을 설치한다.

$ pip install jinja2 tornado pyzmq jsonschema
$ pip install ipython

Jupyter(IPython3)부터는 jsonschema 라이브러리도 추가로 필요하다.

IRuby 설치

IRuby 최신 버전은 gem으로 설치할 수 있다. 여기서는 루비 환경은 구축되어있다고 가정한다.

$ gem install specific_install
$ gem specific_install -l https://github.com/SciRuby/iruby -b master

# rbenv 사용자만
$ rbenv rehash

여기서 specific_install을 사용할 필요가 있는데, 이는 현재 최신 irubySciRuby 쪽으로 포크되어서 관리되고 있기 때문이다. 그냥 gem install iruby하게 되면 minad/iruby가 설치되는데 이는 jupyter와 호환성이 없다. (좀 더 자세한 내용은 RORLab에서 유상민 님이 좀 더 자세히 이야기해주셨습니다. specific_install로 설치 시 몇 가지 경고가 출력되는데 설치하는 법도 다룹니다.)

마지막으로 iruby 명령어가 설치되었는지 확인해본다. iruby 명령어는 IPython3 이전에는 루비 커널로 IPython을 실행하는 래퍼였으며, 현재는 고유한 명령어들을 가지고 있다.

$ iruby --version
0.1.13

IPython3부터는 ~/.ipython/kernels에 등록된 커널 설정들을 사용한다. iruby가 정상적으로 설치되었다면 루비 커널을 등록한다.

# iruby 커널 등록
$ iruby register

아래 명령어로 루비 커널이 추가되었는지 확인할 수 있다.

$ ipython kernelspec list
  python2
  bash
  julia 0.3
  ruby

ruby가 있다면 정상적으로 커널이 등록된 것이다.

IRuby 실행하기

최신 버전(>=3)에서는 iruby를 사용하지 않고 ipython으로 실행해도 정상적으로 ruby 커널을 사용할 수 있다.

$ ipython notebook --ip=0.0.0.0 --notebook-dir <NOTEBOOKS_DIR>

정상적으로 서버가 실행되면 http://0.0.0.0:8888에 접속해본다.

레퍼런스

IRuby

IPython/Jupyter

IPython Kernel for other languages

IPython Client

Examples

Active Essays / Literate Programming

Blogging by Ipython

ETC


comments powered by Disqus