WSL上の Jupyter Notebook からWindowsのブラウザを起動する

Windows 11 の WSL上の Ubuntuに Juputer Notebook をインストールし、jupyter notebook の起動時に Windows のブラウザ(chrome.exe)を自動的に開くようにすることを試したが、うまくいかず問題点(空白のエスケープ)に気が付くまでに時間がかかった。備忘録として記録しておく。

環境

  • Windows 11 Pro:  ver. 22H2, OS build:  22621.1413
  • WSL version: 2, distro: Ubuntu-22.04
  • Python: 3.10.7
  • Jupyter Notebook:  6.4.12

jupyter_notebook_config.py

jupyter_notebook_config.py に以下を含める(設定を変更する)ことで Windowsのchrome.exe が jupyter notebook 起動時に自動的に開かれるようになった。

c.NotebookApp.browser

c.NotebookApp.browserの設定で手間取った。Shellのつもりで、シングルクォートで囲めば文字列中の空白はエスケープしなくても良いと思っていて以下のようにしていてうまくいかなかった。実際には、この設定では上のようにバックスラッシュで空白をエスケープする必要がある。

この点については、Launching notebook to browser on WSL #4594 が参考になった。

また、c.NotebookApp.browser ではなく、環境変数 BROSWER を設定する方法もあることが Running Jupyter Notebook on WSL while Using Browser on Windows でわかった。ただ、.bashrc などを使わず、jupyter notebook 関連のファイルの設定だけで閉じているようにしたかったので、環境変数は使わないことにした。

c.NotebookApp.use_redirect_file

c.NotebookApp.use_redirect_file については、「wsl jupyter notebook browser」などで検索すると多くの情報が得られる。

上記の Running Jupyter Notebook on WSL while Using Browser on Windows にも簡単な説明がある。