みなさんこんにちは、大学生のひじきです。今回はM1以降のMacへJupyter Labを導入する方法について解説して行きます。
状況としては普段pip+venvで仮想環境を分けている方向けに、
上記を解説します。
Jupyter Labの導入方法は既に様々な記事で解説されていますが、ディレクトリごとにJupyter Labを入れる方法やAnacondaで入れる方法などが多く、上記のような状況にピッタリと来る方法がありませんでした。そこで備忘録としてこの記事を書いています。
とりあえず結論としては、普通に仮想環境を作成した後に「ipykernelコマンドを使って仮想環境からJupyter Labのカーネルを作成する」となります。こちらに関して、この後詳しく解説します。
なお、僕の環境は以下の通りです
前提:Node.jsのインストール
まずこれです。「Pythonを実行したいのに?」と思われるかもしれませんが、Jupyter Labの使用にはNode.jsのインストールが必要となります。
単純にHomebrewで入れる方法は以下ですが、nやnvm、nodenvといったバージョン管理ツールを使った方が後々良いかと思われます。pyenvを使うような感じですね。
$ brew install node
ちなみに僕はnodenvを使用していますが、最もよく使われているのはnvmのようです。他にも様々なバージョン管理ツールがあるようなので、ここはご自身で調べてみてください!
なお、インストールするバージョンはLTSのうちの最新版が良さそうです。少し古いものだと後述の警告メッセージが出る可能性があります。
一応インストールできているかの確認と、バージョンがLTSになっているかの確認を行なっておきましょう
$ node -v
v20.17.0
Jupyter Labをグローバルのpipでインストール
さて、Node.jsを入れることができたら、いよいよJupyter Labを導入します。こちらはシンプルに以下です。
$ pip install jupyterlab
この状態で
$ jupyter lab
コマンドを実行すると自動的にHTMLファイルが生成され、Jupyter Labの画面が開きます。
この時、HTMLファイルを開くアプリをSafariやChrome等のブラウザにしている必要があります。
僕はここをVSCodeにしていたため、「なんで自動で開かないんだろう…」となりました……。
Jupyter Lab画面が開けたら、サイドバーからディレクトリの移動、Launcherタブからノートブックやファイルの作成を行うことができます。
細かい操作についてはここでは触れませんが、重要なのが「Notebook」のところに表示されているリストです。ここにあるのはカーネルというもので、ノートブックを作成、実行する際には必ずカーネルを指定します。

ここでカーネルと仮想環境の対応についてですが、デフォルトのカーネルを選択した場合にはグローバルのpipで入れたライブラリしか使用できません。
つまり、各ディレクトリの仮想環境に対応したカーネルを作成する必要があります。
その方法についてここから解説していきます。
仮想環境からカーネル(kernel)を作成
仮想環境と対応するカーネルを作成するため、まずは作業ディレクトリに移動し、仮想環境を有効化します。例えば作業ディレクトリの直下に.venv/がある状況では以下ですね。
$ source .venv/bin/activate
こうして仮想環境を有効化させた状態で、まずipykernelライブラリをpipで入れます。結局これはディレクトリごとに入れる必要あるんかい、という話ですが。VSCode上で.ipynbファイルを実行する際にも必要だったので、これはしょうがない……。
$ pip install ipykernel
続いてこのipykernelを使って、現在有効化している仮想環境と、Jupyter Lab上で選択するカーネルを結びつけて行きます。
$ python -m ipykernel install --user --name {MACHINE_NAME} --display-name "{DISPLAY_NAME}"
はい、これだけです。
この名前にはディレクトリ名(プロジェクト名)を使用するのが分かりやすいかなと思います。例えばml_practiceというディレクトリ名であれば以下などですね。
$ python -m ipykernel install --user --name ml_practice_venv --display-name "ML Practice"
以上でカーネルの作成は完了です!
補足として、作成したカーネルを表示、削除するコマンドは以下となります
$ jupyter kernelspec list
$ jupyter kernelspec uninstall {MACHINE_NAME}
正常に動作していれば、Jupyter Labを開いた時にLauncherタブなどからカーネルを選択することができるはずです!

なお、ライブラリを追加したい時はコマンドから仮想環境を有効化した上でインストールします。ノートブックからpip installを実行してしまうとグローバルの環境にインストールされてしまうので注意です!
またコマンドによって追加したライブラリはJupyter Lab上に即反映されるので、この点は非常に便利です。
ここまでで手順は完了となります。最後にカーネル作成用のコマンドを参照したサイトと、いくつか生じた警告・エラーについてまとめてあります。
参考サイト
Jupyter Labが起動しない時の解決法
最後に僕が出会ったエラーとその対処法をまとめておきます。
以上になります、ありがとうございました!