Poetry でライブラリを管理しながら Jupyter notebook を VSCode で使う
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: New Jupyter Notebook」を実行しても構わない。
カーネルを設定する
ファイルが開いたら、まず右上の Select Kernel をクリックして IPyKernel を設定する。
クリックすると次の様な選択リストが表示される。
マシンで利用できるすべての Python 環境が表示されるが、Poetry で作成した .venv 環境を選択する。
これで、コードセルを実行できるようになる。
実行時点でカーネルが選択されてなければその場で選択を促されるので、この手順はすっ飛ばしてもいいかも。
コードセルの動作を試す
例として次のコードをコードセルに書き込んで実行してみる。
import sys
sys.version_info
実行すると次の様に実行環境の Python バージョンを表示できる。
ライブラリを使ってみる
標準以外のライブラリを使いたい場合には 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 する。
すると次の様に表示される。
-
私は asdf を利用している。 ↩︎
Discussion