Jupyter Notebookを使う

2019-06-23

KDE neonを使おう

t f B! P L
Jupyter NotebookのインストールはJupyterのインストール-p--qで行いました。

jupyter notebook
jupyter-notebook

jupyterのサブコマンドで起動することもjupyter-notebookコマンドでも実行できます。

パスワードを設定する



コマンドを実行するとデフォルトブラウザが立ち上がるのですが、パスワードかトークンの入力を求められます。


KonsoleではトークンをつけたURLが表示されているのでそれを右クリック ー> リンクを開く、でJupyter Notebookを使うことができるようになります。

しかし毎回Konsoleに戻ってリンクを開くのは面倒なのでパスワードを設定することにします。

jupyter-notebook password

これでパスワードを設定できます。
pq@pq-VirtualBox:~$ jupyter-notebook password
Enter password: 
Verify password: 
[NotebookPasswordApp] Wrote hashed password to /home/pq/.jupyter/jupyter_notebook_config.json
~/.jupyter/jupyter_notebook_config.jsonに暗号化してパスワードが書き込まれます。

あとはブラウザの自動入力機能を使えば毎回パスワードを入力しなくてもLog inボタンをクリックするだけで済みます。

オプションをファイルで設定する


jupyter-notebook --generate-config

これでデフォルト設定ファイルが作成されます。
pq@pq-VirtualBox:~$ jupyter-notebook --generate-config
Writing default config to: /home/pq/.jupyter/jupyter_notebook_config.py
~/.jupyter/jupyter_notebook_config.pyに書き出されました。

ディレクトリを指定する

## The directory to use for notebooks and kernels.
#c.NotebookApp.notebook_dir = ''
c.NotebookApp.notebook_dirを設定してJupyter Notebookのルートティレクトリを変更しました。

c.NotebookApp.notebook_dir = '/home/pq/jupyter'

/home/pq/jupyterを指定しました。

ブラウザを指定する

## Specify what command to use to invoke a web browser when opening the notebook.
#  If not specified, the default browser will be determined by the `webbrowser`
#  standard library module, which allows setting of the BROWSER environment
#  variable to override it.
#c.NotebookApp.browser = ''
c.NotebookApp.browser = 'firefox'
ブラウザにFirefoxを指定しました。

メニューに登録する


Jupyter Notebookを終了するにはシェルからCtrl+cとしないといけないので、ランチャからKonsoleを起動することにします。


アイコンは/usr/lib/python3/dist-packages/notebook/static/base/imagesにあるfavicon.icoを使いました。

konsole -e jupyter-notebook

コマンドはこのようにKonsoleからjupyter-notebookを起動しています。

終了するときはKonsoleでCtrl+cして、yとすると終了できます。

拡張機能のインストール


今までも、いくつか拡張機能は使っていたものの、大部分は使わずに過ごしていたため、食わず嫌いはいけないな・・と思いドキュメント読みながら使ってみてまとめます。
ここで紹介されているSnippetsという拡張機能を使いたいのですが、それだけインストールする方法がいまいちわからないのでまとめてインストールすることにします。

pip install --user jupyter_contrib_nbextensions

jupyter contrib nbextension install --user

pip install --user jupyter_nbextensions_configurator

jupyter nbextensions_configurator enable --user

これでJupyter Notebookを起動するとNbextensionsタブができています。


Nbextensionsタブをクリックすると拡張機能のオンオフが切り替えることができます。


contrib_nbextensins_help_item
Nbextensions dasboard tab
Nbextensions edit menu item

この3つは初めから有効になっていました。

AddBefore
Autoscroll
CodeMirror mode extensions
jupyter-js-widgets/extension
Luaunch QTConsole
Skip-Traceback

この6つは互換性がない可能性があるということで有効にできなくなっています。

これは単に互換性に関する情報が提供されていないだけでチェックできなくなっていることもあるようで、上にあるdisable configuration for nbextensions without explicit compatibility (they may break your notebook environment, but can be useful to show for nbextension development)のチェックを外すと使えるようになります。

拡張機能名を選択すると下にパラメーター設定画面がでてきます。

Launch QTConsoleを選択するとcompatibilityが4.xだけになっています。

jupyter-notebookは5.2.2なのでそれで互換性がないといわれているのかと思います。

でもチェックしてみるとちゃんと動きました。

互換性の可能性がないといわれている拡張機能はすべて5.xの互換性が書いていませんでした。

jupyter-js-wedgets/extensionはcompatibilityが?.xになっていました。

追加で有効にした拡張機能


チェックして新しいNotebookを開くとその拡張機能が有効になります。

jupyter-js-widgets/extension


Using Interact — ipywidgets and jupyter-js-widgets 6.0.0.beta7 documentation

変数を動的に変更できるウィジェットが表示できるようになります。


スライダーやチェックボックスでxが動的に変更できるようになっています。

Luaunch QTConsole


Run QTConsoleボタンをクリックすると、プロンプト番号の続きからQt consoleが起動します。

Qt Consoleと同じkernelになっているようで、グローバルスコープは同じになっています。

Live Markdown Preview


Markdownセルに入力するとリアルタイムにレンダリング結果が表示されます。


GFMのシンタックスハイライトには対応していますが、絵文字はダメみたいですね。

Snippets


Snippets — jupyter_contrib_nbextensions 0.5.0 documentation


Snippetsのプルダウンメニューから定型コードを入力できます。

定型コードはsnippets.jsonに書いておきます。

snippets.jsonあるディレクトリは$(jupyter --data-dir)/nbextensions/snippetsを実行すると確認できます。
pq@pq-VirtualBox:~$ $(jupyter --data-dir)/nbextensions/snippets
bash: /home/pq/.local/share/jupyter/nbextensions/snippets: ディレクトリです
スニペットのコードは1行ずつ文字列で1要素としてJSONの配列に書きます。

これが結構面倒です。

ダブルクォーテーションでしか囲えないので、コード内にはダブルクォーテーションは使えません。

タブを使っているとエラーになります、、、Pythonコードなのに、、、

なのでsnippets.jsonに書き込む手順としては、

ダブルクォーテーションをシングルクォーテーションに書き換える、
タブをスペースに置換する、
1行ずつダブルクォーテーションで囲んでカンマで区切る、

というふうにしないといけません。
{
    "snippets" : [
        {
            "name" : "example",
            "code" : [
                "# This is an example snippet!",
                "# To create your own, add a new snippet block to the",
                "# snippets.json file in your jupyter nbextensions directory:",
                "# /nbextensions/snippets/snippets.json",
                "import this"
            ]
        },
        {
            "name" : "NewCode",
            "code" : [
                "import os",
                "os.environ['UNO_PATH'] = '/usr/lib/libreoffice/program'"
            ]
        }      
    ]
}
こんな感じでnameとcodeを追加していきます。

Table of Contents (2)


Table of Contents (2) — jupyter_contrib_nbextensions 0.5.0 documentation


Table of ContentsボタンをクリックするとMarkdownセルの内容で目次を作ってくれます。


ギアアイコンをクイックすると設定変更できます。


デフォルトではタイトルに連番を振ってくれます。

nbconvertでHTMLへ出力もできるようです。

Variable Inspecor


Variable Inspector — jupyter_contrib_nbextensions 0.5.0 documentation


Variable Inspectorボタンをクリックすると変数の値などが表示されます。


Sizeというのはsys.getsizeof()の戻り値で、オブジェクトのバイト数です。


ブログ検索 by Blogger

Translate

最近のコメント

Created by Calendar Gadget

QooQ