Smile Engineering Blog

ジェイエスピーからTipsや技術特集、プロジェクト物語を発信します

Raspberry Pi で Jupyter Notebook

はじめに

NumPy の勉強ついでに Raspberry Pi で Jupyter Notebook を動かして見ました。備忘のために記しておきます。

ポイント

  • Jupyter Notebook の(デフォルト)設定ファイルは jupyter-notebook コマンドで作る
    • 起動時にブラウザを起動させないようにしたい
    • listen アドレスを any(0.0.0.0)にしたい
  • パスワードを設定する
    • 設定しないと起動毎に違う(ハッシュを含む) URL をサーバから提示される
  • NumPy を使用するには libatlas-base-dev が必要

環境

Raspberry Pi3 Model B

Raspbian Buster Lite(Minimal image based on Debian Buster)

Version:        July 2019
Release date:   2019-07-10
Kernel version: 4.19
Size:           426 MB
pi@raspberrypi:~ $ lsb_release -a
No LSB modules are available.
Distributor ID: Raspbian
Description:    Raspbian GNU/Linux 10 (buster)
Release:    10
Codename:   buster
pi@raspberrypi:~ $ uname -a
Linux raspberrypi 4.19.66-v7+ #1253 SMP Thu Aug 15 11:49:46 BST 2019 armv7l GNU/Linux
pi@raspberrypi:~ $ python3 -V
Python 3.7.3

インストール

Python の仮想環境の上に構築するので venv をインストールします。

sudo apt install python3-venv libatlas-base-dev

仮想環境(.venv)を作成し、有効化します。

python3 -m venv .venv
source .venv/bin/activate

deactivate コマンドで無効化

(仮想環境の)pip をアップグレードし、(仮想環境に)Jupyter Notebook、および NumPy をインストールします。

pip install jupyter numpy

設定

Jupyter Notebook の設定を変更するために、まずデフォルトの設定ファイルを作成します。

jupyter-notebook --generate-config

コマンドを叩くと、デフォルト値がセットされた設定ファイル ~/.jupyter/jupyter_notebook_config.py ができます。エディタ等で以下の 2 箇所を変更します。

ブラウザの自動起動の抑止

デフォルト設定では Jupyter Notebook 起動時に Web ブラウザを起動しようとするのでこれを抑止します(Raspberry Pi をサーバとして動作させるため)。

## Whether to open in a browser after starting. The specific browser used is
#  platform dependent and determined by the python standard library `webbrowser`
#  module, unless it is overridden using the --browser (NotebookApp.browser)
#  configuration option.
c.NotebookApp.open_browser = False  # <- ココ!
listen アドレスの変更

別の端末のブラウザから利用するので listen アドレスを 0.0.0.0 に変更します。

## The IP address the notebook server will listen on.
c.NotebookApp.ip = '0.0.0.0'  # <- ココ!

ついでにパスワードも設定します。パスワードの設定は以下のコマンドで行います。

jupyter notebook password

起動

Jupyter Notebook を起動します。

jupyter notebook

Web ブラウザで Raspberry Pi のポート 8888 にアクセスします。こんな感じで動きます。

f:id:jspnet:20190925102353p:plain

参考