Jupyter Notebook拡張機能インストール時のModuleNotFoundError対処法
問題の概要
Jupyter Notebookに**jupyter_contrib_nbextensions
**をインストールする際、以下のエラーが発生する問題がよく報告されています:
ModuleNotFoundError: No module named 'notebook.base'
このエラーは主に以下の操作後に発生します:
pip install notebook
でJupyter Notebookをインストールpip install jupyter_contrib_nbextensions
で拡張機能をインストールjupyter contrib nbextension install --user
実行時にエラー発生
よくある環境
- Windows 11 システム
- Python 3.11 以降のバージョン
- pipを使用したインストール
根本原因
このエラーの主な原因はバージョン互換性の問題です:
- 最新版のJupyter Notebook(バージョン7.0以降)ではモジュール構造が変更され、
notebook.base
が存在しなくなりました jupyter_contrib_nbextensions
がまだ新しい構造に対応していないため発生- Python 3.11の変更も一部影響している可能性があります
注意
問題を解決しようとして以下の方法を試しても効果がないことが確認されています:
- Notebookの再インストール(
--upgrade --force-reinstall
) - nbextensionsの再インストール
- 仮想環境の作成
- pipキャッシュのクリア
効果的な解決策
方法1: Notebookとtraitletsのバージョンダウングレード(pipユーザー向け)
最も確実で多くの場合に有効な解決策:
# 既存の競合パッケージをアンインストール
pip uninstall notebook traitlets jupyter
# 互換性のあるバージョンを再インストール
pip install notebook==6.4.12 traitlets==5.9.0
# 必要な拡張機能をインストール
pip install jupyter_contrib_nbextensions
その後、拡張機能をインストール:
jupyter contrib nbextension install --user
IPythonユーザー向け追加処置
上記を実行後もエラーが発生する場合、IPythonのバージョンも調整が必要:
pip uninstall ipython
pip install ipython==8.9.0
方法2: Condaを使用したインストール(Anacondaユーザー向け)
conda環境を使用している場合、conda-forgeチャネルからインストールすることで解決できます:
conda install -c conda-forge notebook
conda install -c conda-forge jupyter_contrib_nbextensions
インストール後、拡張機能を有効化:
jupyter contrib nbextension install --user
方法3: 仮想環境を使用したクリーンインストール
グローバル環境を変更したくない場合、仮想環境を作成して試す方法:
python -m venv jupyter_env # 仮想環境作成
source jupyter_env/bin/activate # Windowsなら .\jupyter_env\Scripts\activate
pip install notebook==6.4.12 traitlets==5.9.0
pip install jupyter_contrib_nbextensions
jupyter contrib nbextension install --user
インストール後の拡張機能有効化
インストールが成功したら、必要な拡張機能を有効化します(例:Blackフォーマッタ):
jupyter nbextensions_configurator enable --user
jupyter nbextension enable jupyter-black-master/jupyter-black
代替拡張機能(autopep8代替)
問題が解決しない場合、コードフォーマット用の代替拡張機能:
jupyterlab_code_formatter
- JupyterLab用だがNotebookでも使用可能
- Black, autopep8, yapfなどをサポート
- インストール:
pip install jupyterlab_code_formatter
nb_black
- Blackフォーマッタを直接統合
- インストール:
pip install nb_black
補足情報
動作確認バージョン
成功例で報告されているパッケージバージョン:
notebook : 6.4.12
traitlets : 5.9.0
jupyter_client : 7.4.9
ipython : 8.9.0
将来の互換性について
jupyter_contrib_nbextensions
の開発チームは新しいNotebookバージョンへの対応を進めていますが、現時点(2024年)ではまだ完全な対応がされていないため、上記のバージョン調整が必要です。
重要
本解決法はWindows環境に限らず、macOSやLinuxでも同様に有効です。環境変数PYTHONPATHの設定は、本問題とは直接関係ありません
これらの手順により、ModuleNotFoundError: No module named 'notebook.base'
エラーは解決し、Jupyter Notebook拡張機能が正常にインストール・使用できるようになります。