Python > Jupyter Notebookを使う

更新日 2019-08-15
広告
Jupyter Notebookを試してみます。 公式ウェブサイト を参考にします。 OSはUbuntu 18.04 LTSを使います。 Pythonのバージョンは以下。
$ python3
Python 3.6.8 (default, Jan 14 2019, 11:02:34)
Anacondaかpipを使ってインストールできるらしいので、pipを使います。公式ウェブサイト的には、Anaconda推奨のようです。 まず、pipをアップグレードします。
$ python3 -m pip install --upgrade pip
で、Jupyter Nootbookをインストールします。
$ python3 -m pip install jupyter
すると、エラーが発生。
ERROR: Could not install packages due to an EnvironmentError: [Errno 13] Permission denied: '/usr/local/lib/python3.6/dist-packages/widgetsnbextension-3.5.1.dist-info'
Consider using the `--user` option or check the permissions.
オプションを指定すれば、ユーザ権限でインストールしてくれます。
$ python3 -m pip install jupyter --user
   :
   :
  WARNING: The script jupyter-console is installed in '/home/ubuntu/.local/bin' which is not on PATH.
  Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
WARNINGが出ました。 /home/ubuntu/.local/binをPATHに追加したほうがよさそうです。 なので、~/.bashrcの最後に以下を追加します。
export PATH=$PATH:/home/ubuntu/.local/bin
これでOKです。 ログインしなおせば、Jupyter Notebookにパスが通っているはずです。
$ jupyter notebook
[I 11:37:25.381 NotebookApp] Serving notebooks from local directory:
[I 11:37:25.381 NotebookApp] The Jupyter Notebook is running at:
[I 11:37:25.381 NotebookApp] http://localhost:8888/?token=d5a8578a5a6b291effe84244b877df89b098aa7685b6223b
[I 11:37:25.381 NotebookApp]  or http://127.0.0.1:8888/?token=d5a8578a5a6b291effe84244b877df89b098aa7685b6223b
[I 11:37:25.381 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
[W 11:37:25.388 NotebookApp] No web browser found: could not locate runnable browser.
[C 11:37:25.388 NotebookApp]

    Or copy and paste one of these URLs:
        http://localhost:8888/?token=d5a8578a5a6b291effe84244b877df89b098aa7685b6223b
     or http://127.0.0.1:8888/?token=d5a8578a5a6b291effe84244b877df89b098aa7685b6223b
起動しました。 ただ、この状態だと、ローカルホストからしかアクセスできません。 外部ホストのウェブブラウザからアクセスするためには、設定を変更する必要があります。 そして、設定を変更するためには、まず、現在の設定をファイルに書き出す必要があります。
$ jupyter notebook --generate-config
Writing default config to: /home/ubuntu/.jupyter/jupyter_notebook_config.py
これで設定ファイル jupyter_notebook_config.py が生成されます。 次に、設定ファイルを以下のように設定します。
#c.NotebookApp.open_browser = True #ブラウザの自動起動
c.NotebookApp.open_browser = False

#c.NotebookApp.ip = 'localhost' #外部サーバからアクセス
c.NotebookApp.ip = '0.0.0.0'

#c.NotebookApp.password = ''  #アクセス時のパスワード
c.NotebookApp.password = 'sha1:96ff293324fa:7846743e8f99240b17b02dd35e35597db75a5202'
パスワードの設定値(sha1から始まるランダムな16進数)は、以下のように、pythonで、"from notebook.auth import passwd; passwd()"を実行すればよいです。
$ python3
Python 3.6.8 (default, Jan 14 2019, 11:02:34)
[GCC 8.0.1 20180414 (experimental) [trunk revision 259383]] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from notebook.auth import passwd; passwd()
Enter password:
Verify password:
'sha1:96ff293324fa:7846743e8f99240b17b02dd35e35597db75a5202'

上記の、"Enter password"と"Verify password"のところで、同じパスワードを入力しましょう。 すると、最後の行が表示されるので、それをそのままc.NotebookApp.passwordにコピペすればよいです。

これでjupyter notebookを再起動すれば、別マシンからアクセスできます。 ウェブブラウザでポート8888にアクセスすれば、パスワードを要求されます。

設定したパスワードを入力すれば、ようやくホーム画面です。 右上の、"New"というボタンをクリックsて、Notebookの'Python 3'を選択すると、タブが開いて、notebookが作成されます。 左上の "Untitled" をクリックすると、notebookの名前を設定できます。 デフォルトでは、このnotebookは、Jupyter Notebookをインストールしたユーザのホームディレクトリに保存されます。

ブラウザのNotebookの "In []" と表示されているところが「Cell(セル)」です。 このセルにプログラムを書いて、Shift + Enter を押すと実行できます。

cellは、code cells, markdown cells, and raw cellsの3つの種類があります。 code cellは、一番イメージしやすいです。 pythonコードを書いて、実行すれば、コードの結果が表示されます。 matplotlibでグラフを表示することも可能です。 markdown cellは、マークダウンを書くためのcellです。 マークダウンの書式で色々と書いて、実行すれば、マークダウン形式で描画されます。

cellにてEmacsのキーバインディングを使うには、以下のプラグインをインストールすればよいです。

$ pip install jupyter-emacskeys --user
これで、jupyterを再起動すれば、Emacs風にエディットできる。 ただし、Ctrl+nだけはだめ。ブラウザの新規ウィンドウが立ち上がってしまいます。
広告
お問い合わせは sweng.tips@gmail.com まで。
inserted by FC2 system