Syntax Error.

[Sy] Jupyter notebook (iPython notebook)の環境をMacに構築する手順

2016/01/05

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はそれの最小構成で(という言い方であってるのか微妙ですが)自分で後からライブラリを追加していくような使い方をできるみたいです。

Minicondapyenvでインストールしますが、その前にインストール可能なバージョンをリストで表示してみます。

$ 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.xminiconda3-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を使える状態になります。