Jupyter
ubuntu16.04

Ubuntu 16.04.2 + Jupyter Notebook (+ bash_kernel + nbextensions)

More than 1 year has passed since last update.

Ubuntu 16.04.2 (Server install image)にJupyter Notebookをインストールします。また、Jupyter Notebookにbash_kernelとnbextensionsをインストールし機能追加します。まずは、環境構築のためVirtualBoxにUbuntuをインストールしていきます。

VirtualBoxにUbuntuをインストール

ubuntu-16.04.2-server-amd64.isoをダウンロードし、VirtualBox上にインストールします。
※あとでリモートからWebアクセスできるよう、「設定」→「ネットワーク」→「アダプター1」で、割当を「ブリッジアダプター」とします。

インストールは画面の指示に従うだけですが、「HTTPプロキシ」と「ソフトウェアの選択」について、今回は以下の通り設定しています。

 HTTPプロキシ:なし (プロキシ環境下ではないので)
 ソフトウェアの選択:「standard system utilities」、「OpenSSH server」をチェック

プロキシ環境下でインストール作業を行っている場合は、この段階でHTTPプロキシ設定しておくのがおすすめです。

ゲストOSの設定

ここからはゲストOSの設定です。ユーザ名の箇所は${user_name}としています。構築環境に合わせ読み替えてください。

ネットワーク設定

IPアドレスをDHCPから固定に変更します。IPアドレスが変わっても問題なければDHCPのままで構いません。変更方法は以下のサイトを参考にしました。

[Ubuntu]ローカルIPアドレスを固定にする

まず、「/etc/network/interfaces」を開きます。

bash
$ sudo vim /etc/network/interfaces

ファイル内の「iface enp0s3 inet dhcp」をコメントアウトし、代わりに以下を追加します。

vim
iface enp0s3 inet static
address 192.168.xxx.xxx
netmask 255.255.255.0
gateway 192.168.xxx.xxx
dns-nameservers 192.168.xxx.xxx

最後にゲストOSを再起動します。

bash
$ sudo reboot

パッケージの更新

各パッケージを最新状態にアップデートします。

bash
$ sudo apt update
$ sudo apt upgrade

Jupyter Notebookインストール

ここからが本番です。Jupyter NotebookをインストールするためにAnacondaを使います。
Anacondaはpythonと、よく利用されるpythonパッケージを包含したパッケージです。
Jupyter NotebookもAnacondaの中に含まれています。具体的なインストール方法は以下に記載されています。

Installing Jupyter Notebook

以下はAnaconda3-4.4.0を用いたインストール方法です。ホームディレクトリにAnacondaをインストールしていきます。

bash
$ cd ~/
$ wget https://repo.continuum.io/archive/Anaconda3-4.4.0-Linux-x86_64.sh
$ bash Anaconda3-4.4.0-Linux-x86_64.sh 

メッセージにしたがってインストールすると、.bashrcにJupyter NotebookのPATHが追加されます。
PATHが追加されなかった場合は、.bashrcか.bash_profileに手作業でPATHを追加してください。

bash
$ export PATH=$PATH:/home/${user_name}/anaconda3/bin

設定の反映もお忘れなく。

bash
$ source .bash_profile (or source .bashrc)

このあと、jupyter-notebookと打つとJupyter Notebookが起動します([Ctrl] + cで終了)。

bash
$ jupyter-notebook &

Jupyter Notebookへのリモートアクセス設定

ここまでで、Jupyter Notebookのインストールが完了しました。ただし、現時点ではローカル環境でしかJupyter Notebookを利用できません。今度はリモートからWebアクセスできるよう設定変更します。設定方法は以下を参考にしました。

ipython notebook(jupyter)をリモートから使う

まずはjupyter_notebook_config.pyファイルを作成します。

bash
$ jupyter-notebook --generate-config
Writing default config to: /home/${user_name}/.jupyter/jupyter_notebook_config.py

次にパスワードのハッシュ値を生成します。

bash
$ ipython3

In [1]: from notebook.auth import passwd

In [2]: passwd()
Enter password:
Verify password:
Out[2]: 'sha1:d1414e6ac5ff:369c16e757d9b49f15d3fad7d6399934ebad4a53'

最後に、jupyter_notebook_config.pyファイルを編集します。

bash
$ vim ~/.jupyter/jupyter_notebook_config.py

ファイルの最下部に以下を追加してください。

vim
c.IPKernelApp.pylab = 'inline'
c.NotebookApp.ip = '*'
c.NotebookApp.open_browser = False
c.NotebookApp.port = 8888
c.NotebookApp.password = u'sha1:d1414e6ac5ff:369c16e757d9b49f15d3fad7d6399934ebad4a53'

最終行の「u'sha:xxxx...'」は先程求めたハッシュ値が入ります。

これで、リモートからアクセスできる状態になりました。改めてjupyter-notebookを起動してみてください。

bash
$ jupyter-notebook &
[1] 1388
$ [W 05:52:52.450 NotebookApp] WARNING: The notebook server is listening on all IP addresses and not using encryption. This is not recommended.
[I 05:52:52.458 NotebookApp] Serving notebooks from local directory: /home/${user_name}
[I 05:52:52.458 NotebookApp] 0 active kernels 
[I 05:52:52.458 NotebookApp] The Jupyter Notebook is running at: http://[all ip addresses on your system]:8888/
[I 05:52:52.459 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).

「http://[all ip addresses on your system]:8888/」からアクセスできるようになっています。

bash_kernelインストール

bash_kernelを使うと、bashコマンド実行用のnotebookを作成できるようになります。notebook上でbashコマンドを使う方法は他にもありますが、bashコマンドだけを使いたい場合はこちらを使うと便利です。インストール方法は以下を参照しました。

https://github.com/takluyver/bash_kernel

一度Jupyter Notebookプロセスを終了し、以下手順でインストールします。

bash
$ pip install bash_kernel
$ python -m bash_kernel.install
$ jupyter-notebook &

nbextensionsのインストール

nbextensionsをインストールすると、Jupyter Notebookにいろいろな機能を追加できるようになります。私はToC(Table of Contents)機能を使いたいのでnbextensionsをインストールしています。今回はAnacondaのJupyter Notebookを利用しているので、以下を参照してインストールしました。

AnacondaのJupyter notebookでnbextensionsを使う

bash
$ conda install -y -c conda-forge jupyter_contrib_nbextensions

以上でインストール作業は終了です。bash_kernelとToCを用いたnotebookは以下のようになります。

Screenshot from 2017-07-17 07-33-39.png