「No module named 'distutils'」の対処(Python 3.12)
結論を先に。Python 3.12 で標準ライブラリの distutils が削除されたのが原因です。distutils 互換を提供する setuptools を入れる(または更新する)ことで直ります。
ModuleNotFoundError: No module named 'distutils'原因
distutils は長く非推奨で、Python 3.12 でついに標準ライブラリから外れました。古いパッケージやビルドスクリプトが import distutils を前提にしていると、このエラーになります。
対処
- まず pip と setuptools を最新にする。setuptools が distutils 互換を提供します。
python -m pip install -U pip setuptools-
それでも出るなら、ビルドしようとしているパッケージが古く distutils を直接使っています。そのパッケージを新しいバージョンに上げるのが本筋です。
-
すぐ動かしたい場合は、distutils 互換を明示的に持つ setuptools を入れて回避します。
pip install "setuptools<81"まとめ
- 原因は Python 3.12 での distutils 廃止
- まず
pip install -U pip setuptoolsを試す - 古いパッケージが原因なら、そのパッケージを更新する
- 応急処置として
setuptools<81で distutils 互換を入れる