WSL2の環境を用意して、PythonとJupyter Notebookのインストールをしたので、ようやくJupyterNotebookを起動できる準備が整った。
WSL2を立ち上げて、Jupyter Notebookを起動したいフォルダまで移動して下記コマンドを打つだけ。
jupyter notebook
通常であれば、ブラウザが立ち上がって、Jupyter Notebookが開く。
トラブルシュート
自分の場合は、jupyter notebookとコマンドを打っても、ブラウザが立ち上がらなかった。
エラーメッセージも出ず、WSL2のターミナルは真っ黒のままだ。
ブラウザを立ち上げようとしているが、立ち上がらず止まっている(だからエラーも出ない)ように見える。
下記の通り対策を施す
Jupyter Notebookの設定ファイルを作成する
このコマンドで、設定ファイルのテンプレートが生成される(設定は全てコメントアウトされている)
jupyter notebook --generate-config
設定ファイルを変更する
設定ファイルは、$HOME/.jupyterの下に、「jupyter_notebook_config.py」というファイル名で生成される。
viで設定ファイルを編集する
vi .jupyter/jupyter_notebook_config.py
設定ファイルに下記を追加する
このファイルをかなり下のほうまでスクロールすると、「c.NotebookApp.use_redirect_file = True」がコメントアウトされた状態で記載されているので、このパラメータをFalseにする。
c.NotebookApp.use_redirect_file = False
これで、jupyter notebook コマンドを実行すると、Jupyter Notebookのブラウザが立ち上がる。
NotebookApp.use_redirect_file はナニモノなのか?
Jupyter Notebookのドキュメントには、下記のように書いてある。
NotebookApp.use_redirect_fileBool
Default: True
Disable launching browser by redirect file
For versions of notebook > 5.7.2, a security feature measure was added that prevented the authentication token used to launch the browser from being visible. This feature makes it difficult for other users on a multi-user system from running code in your Jupyter session as you.
However, some environments (like Windows Subsystem for Linux (WSL) and Chromebooks), launching a browser using a redirect file can lead the browser failing to load. This is because of the difference in file structures/paths between the runtime and the browser.
Disabling this setting to False will disable this behavior, allowing the browser to launch by using a URL and visible token (as before).
まあ、つまりは、こういうことらしい。
バージョン5.7.2からセキュリティ機能の対策が追加され、ブラウザの起動に使用される認証トークンが見えないようになっている。
しかし、WSLやChromebookなどでは、ランタイムとブラウザーの間でファイル構造やパスが異なるため、リダイレクトファイルを使ってのブラウザの起動に失敗する場合がある。
このパラメータをFalseにすると、(従来どおり)URLと可視トークンを使用してブラウザーを起動できるようになる。
なるほど。