専門書を読んでいるときなどにJupyterNotebookをよく使用するのですが、何故かpip3でインストールしたパッケージが使用出来なかったため、その時の対処方法を残します。
バージョンについて
はじめにjupyterのバージョンを確認します。–versionで確認できます。
$ jupyter-notebook --version
7.2.2
もしバージョンが古い場合は以下のコマンドでバージョンアップします。(pipインストールの場合)
$ pip3 install -U jupyter
エラーについて
カーネルはvenvを使用しているのですが、例えばlibrosaをimportしようとすると以下のようにNo moduleとなります。

パッケージがインストールされているのかpip showで確認してみると、venvにあることがわかります。
$ pip3 show librosa
Name: librosa
Version: 0.10.2.post1
Summary: Python module for audio and music processing
Home-page: https://librosa.org
Author: Brian McFee, librosa development team
Author-email: brian.mcfee@nyu.edu
License: ISC
Location: /Users/venv/lib/python3.8/site-packages
Requires: audioread, decorator, joblib, lazy-loader, msgpack, numba, numpy, pooch, scikit-learn, scipy, soundfile, soxr, typing-extensions
jupyterの参照先が違うかもと思い、jupyter内で以下のコードを実行してみました。
$ import sys
$ print(sys.executable)
/Users/miniconda3/bin/python
カーネル名はvenvなのに何故かminiconda3内のpythonを参照していますね。
これが原因でvenvにインストールしたパッケージが使用で出来ていなかったのだと考えられます。
解決方法
以下のコードをコマンドラインで実行することで解決しました。
$ python3 -m ipykernel install --user --name=python38 --display-name "Python 3.8 (venv)"
jupyterのchange kernelに以下のPython3.8(venv)が追加されていれば解決です。

実際にjupyter内で参照先を確認してみると
$ import sys
$ print(sys.executable)
/Users/venv/bin/python3
これでエラーなく実行できました。
コメント