[Sy] Jupyter notebook (iPython notebook)の環境をMacに構築する手順
iPython notebook
改めJupyter notebook
という素晴らしいツールの存在を知ったので、Macに環境を構築した時の手順です。
元々Pythonを対話的に実行できるiPython
というものがあって、そいつがブラウザ上で動作するように作られたiPython notebook
というものがあるらしいということ、そして最近ではJupyter notebook
と名前を変えてカーネルと呼ばれるものを切り替えることでPython以外の言語のブラウザ上で動く対話的実行環境も作れてしまう、という感じみたいです。
きっかけはクックパッドのブログの記事でした。
⇒ 現代のエンジニアのための強力なメモ帳 Jupyter notebookのすゝめ - クックパッド開発者ブログちょうど機械学習に手を出そうとしている時だったので、これはすぐに使いたい。。。ということで、Macに環境構築した時の手順になります。
作業環境
- Mac OS X 10.11.2 (El Capitan)
- Homebrew 0.9.5
- Python 3.5.1
- pyenv 20151124
- Miniconda 3.18.3
手順
1. pyenvをインストール
まずはHomebrewを使って、pyenv
をインストールします。pyenv
は、複数バージョンのPythonを管理して切り替えが簡単にできるマネージャです。
(El CapitanになってHomebrewがうまく動かない!という場合などはリポジトリをcloneしても良いと思います)
$ brew install pyenv
or
$ git clone git://github.com/yyuu/pyenv.git ~/.pyenv
pyenv
をインストールできたら、以下を.bash_profile
や.zshrc
に追記します。
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
if which pyenv > /dev/null; then eval "$(pyenv init -)"; fi
ここで一度シェルを再起動するか、source ~/.bash_profile
等のコマンドで設定を反映させると、pyenv
が使えるようになります。
2. Minicondaをインストール
次にMiniconda
というものをインストールします。
元々、数値計算処理に適したPythonの環境を構築してくれるAnaconda
というものがあって、Miniconda
はそれの最小構成で(という言い方であってるのか微妙ですが)自分で後からライブラリを追加していくような使い方をできるみたいです。
Miniconda
はpyenv
でインストールしますが、その前にインストール可能なバージョンをリストで表示してみます。
$ pyenv install --list | grep miniconda
miniconda-2.2.2
miniconda-3.0.0
miniconda-3.0.4
miniconda-3.0.5
miniconda-3.3.0
miniconda-3.4.2
miniconda-3.7.0
miniconda-3.8.3
miniconda-3.9.1
miniconda-3.10.1
miniconda-3.16.0
miniconda-3.18.3
miniconda3-2.2.2
miniconda3-3.0.0
miniconda3-3.0.4
miniconda3-3.0.5
miniconda3-3.3.0
miniconda3-3.4.2
miniconda3-3.7.0
miniconda3-3.8.3
miniconda3-3.9.1
miniconda3-3.10.1
miniconda3-3.16.0
miniconda3-3.18.3
たくさんあります。大きく分けて、miniconda-x.x.x
とminiconda3-x.x.x
がありますが、
miniconda-x.x.x
: Python2.x系miniconda3-x.x.x
: Python3.x系
ということみたいです。特に理由がないのであれば、Python3.x系を使っておいたほうが良さそうなので、その最新のminiconda3-3.18.3
をインストールします。
$ pyenv install miniconda3-3.18.3
このようにpyenv install xxxx
でインストールした後は、
$ pyenv rehash
をしておく必要があるので忘れずに。
3. インストールしたminicondaを有効化
インストールしただけでは使えないので、以下のコマンドでインストールしたminicondaを使用する設定を行います。
$ pyenv global miniconda3-3.18.3
これでPythonやpipが使えるようになっているはずです。
$ python --version
Python 3.5.1 :: Continuum Analytics, Inc.
$ pip --version
pip 7.1.2 from /Users/utano320/.pyenv/versions/miniconda3-3.18.3/lib/python3.5/site-packages (python 3.5)
4. Minicondaの仮想環境を作成する
Miniconda
には仮想環境というものがあって、その環境ごとに異なるライブラリをインストールすることができるようです。
この時点での仮想環境を確認すると、
$ conda info -e
# conda environments:
#
root * /Users/utano320/.pyenv/versions/miniconda3-3.18.3
のようにroot
という環境のみあるのがわかります。ここに仮想環境として新しく任意の名前のものを作成できるということです。
ここでは例として、test
という仮想環境を作成してみます。
$ conda create -n test python=3
これで新しくtest
という仮想環境ができました。
もう一度確認してみると、
conda info -e
# conda environments:
#
test /Users/utano320/.pyenv/versions/miniconda3-3.18.3/envs/test
root * /Users/utano320/.pyenv/versions/miniconda3-3.18.3
となっているはずです。
作成した時点ではroot
に*
がついていて、そちらの環境を使っていることになります。これを今作ったtest
に切り替えるために、以下のコマンドを実行します。
source source /Users/utano320/.pyenv/versions/miniconda3-3.18.3/envs/analysis/bin/activate test
これで仮想環境に切り替わりました。
conda info -e
# conda environments:
#
test * /Users/utano320/.pyenv/versions/miniconda3-3.18.3/envs/test
root /Users/utano320/.pyenv/versions/miniconda3-3.18.3
5. 主要なパッケージをインストールする
とりあえずipython-notebook
と、主要なパッケージをインストールしておきます。
$ conda install ipython-notebook
$ conda install pandas
$ conda install matplotlib
簡単にライブラリの役割を書くと、
pandas
: データの分析・操作のためのライブラリmatplotlib
: グラフ描画ライブラリ
というような感じです、pandas
でデータを操作して、その結果をmatplotlib
でグラフ化する、というのがよくやるパターンみたいです。
6. 起動
いよいよipython notebook
を起動します。
その前に、記述したnotebookを保存するためのディレクトリを作成します。例として、~/note/
に保存したいとします。
$ mkdir ~/note/
$ cd ~/note/
起動します。
$ ipython notebook
[W 15:20:33.812 NotebookApp] ipywidgets package not installed. Widgets are unavailable.
[I 15:20:33.887 NotebookApp] Serving notebooks from local directory: /Users/utano320/Documents/Develop/Jupyter
[I 15:20:33.887 NotebookApp] 0 active kernels
[I 15:20:33.887 NotebookApp] The IPython Notebook is running at: http://localhost:8888/
[I 15:20:33.887 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation)
コマンドを実行するとWebサーバが立ち上がり、http://localhost:8888
としてブラウザ上でnotebookを使える状態になります。