状況
pyvista 0.38
で 3d プロットを jupyter lab 内に表示するエンジンが trame
に変更され、これまでのバックエンドは非推奨になりました。(2023年2月2日)
これをインストールして動作を試しました。同じ仮想環境内で jupyter lab を起動している場合は、pyvista の指示通りのインストール法で問題なく動作しました。
pip install 'jupyterlab>=3' ipywidgets 'pyvista[all,trame]'
次に、jupyter lab 環境は一つだけ作って、他の venv からも ipykernel を登録する、という運用で動作するかを調べると、これまで使っていた jupyter lab 環境そのままでは、pyvista
のプロットがうまく表示されませんでした。
例えば、Click to show javascript error
と表示されたり、
Error displaying widget: model not found
と表示されたりしました。
動作環境
Windows11 Home (22H2)
Python 3.10.9
pyvista 0.38.1 他は、上記 pip install でインストールされたライブラリーを使用。
解決策
フレッシュな venv 環境をいくつか作成して切り分けを試みました。
今のバージョンでは、jupyter lab 側も、kernel 側も共にマニュアル記載のインストール pip install 'pyvista[all,trame]'
を行う必要があります。こうすれば、ipykernel
で登録した kernel を使って pyvista の plot を描画させることはできるようです。
このとき、オプションの all
が効いて、Panel
や pythreejs
も入ってしまいますが、これをアンインストールしてみると、うまく動作しませんでした。
また、いずれにしてもノートブックの評価前は、Error displaying widget: model not found
という表示が出ていました。
ここだけ見ると、そもそも jupyter lab の venv を分ける必要があるのか、という疑問も生じますが、pyvista kernel の側で、さらに目的に応じていろいろなパッケージを入れていくことを考えると、jupyter lab 用の venv は可能な範囲で手を加えないで残しておくというのも、一つのやり方だと思います。