python module_error ai_generated true

ModuleNotFoundError: No module named 'distutils'

ID: python/setup-py-deprecated-distutils-removed

Also available as: JSON · Markdown · 中文
80%Fix Rate
89%Confidence
0Evidence
2024-01-15First Seen

Version Compatibility

VersionStatusIntroducedDeprecatedNotes
3.12 active

Root Cause

Python 3.12 removed the stdlib distutils module. Legacy setup.py scripts or old setuptools versions import distutils directly and fail.

generic

中文

Python 3.12 移除了标准库 distutils 模块。旧的 setup.py 脚本或旧版 setuptools 直接导入 distutils 从而失败。

Workarounds

  1. 90% success
    pip install 'setuptools>=68'
    export SETUPTOOLS_USE_DISTUTILS=stdlib
    pip install .
  2. 85% success
    pip install --upgrade setuptools
    python -c "import setuptools, setuptools._distutils; print('ok')"
    # if still failing, use build isolation:
    pip install --use-pep517 .

Dead Ends

Common approaches that don't work:

  1. 95% fail

    There is no distutils package on PyPI; pip reports 'No matching distribution found for distutils'.

  2. 90% fail

    The module doesn't exist to import; the shim itself raises ModuleNotFoundError.