📚

Poetry でライブラリを管理しながら Jupyter notebook を VSCode で使う

2022/11/13に公開

VSCode 上で Jupyter notebook を利用する方法について記す。
まあ、VSCode にJupyter拡張をインストールしてしまえば必要なライブラリのインストールを促してくれ特に躓くところはない。
ただ、いろいろライブラリを使った作業になると思うので、それらを Poetry で管理しながら使うための手順を示す。

Python はインストールされている前提で進める。
インストールの仕方はインストーラー使っても Homebrew でも pyenv や asdf でも構わないと思う。[1]

VSCode の準備

次の拡張をインストールする。

poetry のインストール

Poetry のインストールについては Mac OS なら homebrew を使うのが簡単。

brew install poetry

これ以外のインストール方法は次のドキュメントを参照。

プロジェクトの作成

適当なディレクトリで次のコマンドを実行する。

poetry new <プロジェクト名(ディレクトリ名)>
cd <プロジェクト名(ディレクトリ名)>
poetry add notebook
code . # VSCode を開く(ピリオドに注意)

最後の code コマンドは VSCode を起動するコマンド。
インストールしてなければ、VSCode のコマンドパレットを開いて「Shell Command: Install 'code' comand in Path」を選択するとインストールされる。

VSCode で試す

手順通りならすでに VSCode が開いているので、 File > New File を選択する。
すると次の様にファイルの種類の選択を求められるので「Jupter Notebook」を選択する。

Create Jupyter Notebook

コマンドパレットで「Create: New Jupyter Notebook」を実行しても構わない。

カーネルを設定する

ファイルが開いたら、まず右上の Select Kernel をクリックして IPyKernel を設定する。
クリックすると次の様な選択リストが表示される。

Select IPython Kernel

マシンで利用できるすべての Python 環境が表示されるが、Poetry で作成した .venv 環境を選択する。

これで、コードセルを実行できるようになる。
実行時点でカーネルが選択されてなければその場で選択を促されるので、この手順はすっ飛ばしてもいいかも。

コードセルの動作を試す

例として次のコードをコードセルに書き込んで実行してみる。

import sys
sys.version_info

実行すると次の様に実行環境の Python バージョンを表示できる。

Show Python version

ライブラリを使ってみる

標準以外のライブラリを使いたい場合には poetry add で追加すれば使えるようになる。
試しに Jupyter Notebook 内で leaflet を使えるようにできる ipyleaflet を試してみる。

poetry add ipyleaflet

上記コマンドで ipyleaflet をインストールしたら、次のコードをコードセルに書き込んで実行する。

from ipyleaflet import Map, Marker

center = (52.204793, 360.121558)

m = Map(center=center, zoom=15)

marker = Marker(location=center, draggable=True)
m.add_layer(marker);

display(m)

初めて実行すると、ライブラリがインターネット上の外部ファイルを使うけど良いか?との旨のダイアログが出るかもしれないが、もちろん OK する。
すると次の様に表示される。

Leaflet sample

脚注
  1. 私は asdf を利用している。 ↩︎

Discussion