「No module named 'distutils'」の対処(Python 3.12)

結論を先に。Python 3.12 で標準ライブラリの distutils が削除されたのが原因です。distutils 互換を提供する setuptools を入れる(または更新する)ことで直ります。

ModuleNotFoundError: No module named 'distutils'

原因

distutils は長く非推奨で、Python 3.12 でついに標準ライブラリから外れました。古いパッケージやビルドスクリプトが import distutils を前提にしていると、このエラーになります。

対処

  1. まず pip と setuptools を最新にする。setuptools が distutils 互換を提供します。
python -m pip install -U pip setuptools
  1. それでも出るなら、ビルドしようとしているパッケージが古く distutils を直接使っています。そのパッケージを新しいバージョンに上げるのが本筋です。

  2. すぐ動かしたい場合は、distutils 互換を明示的に持つ setuptools を入れて回避します。

pip install "setuptools<81"

まとめ

  • 原因は Python 3.12 での distutils 廃止
  • まず pip install -U pip setuptools を試す
  • 古いパッケージが原因なら、そのパッケージを更新する
  • 応急処置として setuptools<81 で distutils 互換を入れる