You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MacOS下解决ModuleNotFoundError: No module named 'distutils'的方法

解决Python语音识别中ModuleNotFoundError: No module named 'distutils'问题

我参照Code With Harry的视频制作Jarvis语音识别程序,运行时卡在语音识别环节,报错如下:

File "/Users/hridayjain/PycharmProjects/Jarvis/main.py", line 18, in
text=takeCommand()
^^^^^^^^^^^^^
File "/Users/hridayjain/PycharmProjects/Jarvis/main.py", line 8, in takeCommand
with sr.Microphone() as source:
^^^^^^^^^^^^^^^
File "/Users/hridayjain/PycharmProjects/Jarvis/.venv/lib/python3.12/site-packages/speech_recognition/init.py", line 80, in init
self.pyaudio_module = self.get_pyaudio()
^^^^^^^^^^^^^^^^^^
File "/Users/hridayjain/PycharmProjects/Jarvis/.venv/lib/python3.12/site-packages/speech_recognition/init.py", line 111, in get_pyaudio
from distutils.version import LooseVersion
ModuleNotFoundError: No module named 'distutils'

报错原因

Python 3.12及以上版本默认不再自带distutils模块,而speech_recognition库在检查PyAudio版本时需要依赖它,因此触发该错误。

解决步骤

  • 安装distutils
    macOS用户通过brew安装:

    brew install python-setuptools
    

    Ubuntu/Linux用户安装系统包:

    sudo apt-get install python3-distutils
    

    Windows用户直接通过pip安装setuptools(distutils包含在setuptools中):

    pip install setuptools
    
  • 重新安装PyAudio
    确保PyAudio安装正常,执行:

    pip install pyaudio
    

    macOS若安装失败,先安装portaudio依赖:

    brew install portaudio
    pip install pyaudio
    
  • 验证修复
    重新运行Jarvis程序,检查语音识别环节是否正常执行。

内容的提问来源于stack exchange,提问作者Hriday Jain

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 03:42:13