Jupyter Notebookをインストール・設定して勉強ノート作成環境をつくる [Mac]

More than 1 year has passed since last update.

Jupyter Notebookとは

Jupyter Notebookはプログラムコードや数式、図、説明文などを含む文書を作成し、共有することが出来るWebアプリケーションです。

以下の様な特徴が公式サイトで挙げられています。

  • PythonやR、Scalaなど40以上のプログラミング言語をサポート
  • 作成したノートブックはemailやDropbox、GitHub、Jupyter Notebook Viewerで共有することが出来る。
  • ノートブックはipynbという拡張子でjson形式に保存されるが、htmlやpdfなど他の形式に変換が可能
  • 入力されたコードはインタラクティブに処理され、画像やビデオ、LaTeXやJavaScriptなどとして出力が可能

他にも

  • 説明文としてMarkdownを使用する事ができる
  • $$で囲うとLaTeXのコマンドが認識されて使用可能(基本的に数式しか対応していないはず)

といったところが気に入っています。

基本的にはローカルなサーバを立てて、個人で利用する用途向けですが、Jupyterhubというのを利用すればマルチユーザ環境でも使用することができます。

他にもいくつかのサブプロジェクトがオフィシャルにサポートされているので、気になる場合は以下を参照してみると良いと思います。

カーネル

Jupyterにおいてカーネルとは入力されたコードをインタラクティブに処理して結果を返却するプロセスのことを指します。

Pythonの処理を実行するカーネルはIPythonが利用されますが、その他の言語を処理したい場合には、その言語のカーネルを別途インストールする必要があります。

勉強したいプログラミングをインストールするとよいかもしれません。

使用できるカーネルは以下を参照ください。

Kobitoとの違い

大きな違いはコードをインタラクティブに処理できる部分だと思います。

そのため、試しに動かしたコードをちょっと修正して、Markdownで説明を書いて保存するとそのままドキュメントとして形になるので便利です。

Jupyter Notebook Viewerを見ると参考になると思います。

Jupyterのインストール

環境

  • Mac OS Yosemite 10.10.5

インストール

インストール方法は以下に詳しく書いてます。

私はPython2系でインストールしたのでpipを使用しましたが、pip3を利用すればPython3系でインストールされるはずです。

pip install jupyter

起動

jupyter notebookで起動できます。

このまま実行すると、実行したディレクトリをノートブックのホームとして使用するので、ノートブック用のディレクトリを作成、移動してから実行するほうがよいかもしれません。

jupyter notebook

コマンドオプションは以下で確認です。

jupyter notebook --help
# or
jupyter notebook --help-all

Python3のカーネル追加

pipでインストールすると使用できるカーネルはPython2のみでPython3ははじめから利用できません。

以下を実行してPython3のカーネルも使用できるようにします。

python3 -m IPython kernelspec install-self

実行すると/usr/local/share/jupyter/kernelsにPython3のカーネルが追加されます。

pip3でインストールしてPython2を利用したい場合は以下となります。

python2 -m IPython kernelspec install-self

Jupyterで使用できるMarkdown

以下を参照してください。

大抵の表記は利用できますし、プログラミング言語のシンタックスハイライトも可能です。

Jupyterの設定

Jupyterの設定ファイルはデフォルトで~/.jupyterに入れられます。

まずは、以下のコマンドを実行してコンフィグファイルの作成を行います。実行するとjupyter_application_config.pyと言うファイルが~/.jupyterに作成されます。

jupyter notebook --generate-config

作成されたファイルを開くと、コメントアウトされた設定が並んでいます。内容を確認して、必要な設定を有効にしましょう。

設定を全て確認してはいませんが、とりあえず以下を設定しています。

# The port the notebook server will listen on.
c.NotebookApp.port = 8080

# The directory to use for notebooks and kernels.
c.NotebookApp.notebook_dir = u'/Path/to/notebooks/'

notebook_dirはJupyterのノートブックのホームとなるディレクトリの設定です。

デフォルトではJupyterを実行したディレクトリがホームとなりますが、いつも特定のディレクトリをノートブック置き場としたかったので設定しています。

LaTeXコマンドの実行

数式などの一部のLaTeXコマンドは$$で囲むことで実行することができます。

$$
\begin{align}
\sum_{k=1}^{\infty} \frac{1}{k^2} = \frac{\pi^2}{6}
\end{align}
$$

といった感じです。

こちらに簡単な例を用意したので確認してみてください。

newcommandなども使用できるようです。

GitHubを利用したノートブックの共有と閲覧

作成したノートブックをGitHubのレポジトリとして管理すると、GitHubのページからもノートブックがエンコードされて閲覧することができるほか、Jupyter Notebook Viewerからも閲覧できます。

私の場合はノートブックのディレクトリとして設定したディレクトリをそのままGitHubにpushしていつでも、どこでもノートブックを閲覧できるようにしています。

.ipynb_checkpointsというのが各所にできるので、gitignoreで無視するようにしています。