You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Python 3.13.0安装PyAudio失败(构建Wheel出错)的解决方法及原因咨询

Python 3.13.0安装PyAudio失败(构建Wheel出错)的解决方法及原因咨询

嘿,我来帮你梳理下这个问题的原因和解决办法,你遇到的这个Failed building wheel for PyAudio错误其实挺常见的,尤其是在Python新版本刚发布的时候。

为什么会出现这个错误?

主要有两个核心原因:

  1. PyAudio官方未适配Python 3.13:Python 3.13属于较新的版本,PyAudio官方的预编译Wheel包(无需编译直接安装的包)还没更新到支持这个版本,所以pip只能尝试从源码编译安装,但编译过程需要额外的依赖支持。
  2. 缺少PortAudio开发依赖:PyAudio底层依赖PortAudio音频处理库,你的系统里没有安装它的开发版本,编译时找不到必要的头文件和库文件,最终导致构建失败。

具体解决步骤

1. 先升级pip(按提示搞定基础环境)

首先把pip升级到最新版本,避免因为pip本身的兼容性问题拖后腿:

python.exe -m pip install --upgrade pip

2. 安装PortAudio依赖(分系统操作)

根据你的操作系统选择对应的方法:

  • Windows系统
    最快的方式是用conda安装(如果你有conda环境的话),它会自动处理所有依赖:

    conda install -c conda-forge pyaudio
    

    要是不用conda,你可以找适配Python 3.13的PyAudio预编译Wheel文件(搜索关键词可以是“PyAudio cp313 wheel”),下载后进行本地安装:

    pip install 你下载的Wheel文件完整路径.whl
    
  • Linux(以Ubuntu/Debian为例)
    先安装PortAudio的开发包和Python开发依赖:

    sudo apt-get install portaudio19-dev python3-dev
    

    安装完成后再尝试安装PyAudio:

    pip install pyaudio
    
  • MacOS系统
    用Homebrew先安装PortAudio:

    brew install portaudio
    

    然后再安装PyAudio:

    pip install pyaudio
    

3. 顺带修正你代码里的小问题

看你贴的代码,engine.setProperty('voice', voices)这里有个小错误:voices是一个语音列表,你得指定具体的索引,比如voices[0](男声)或者voices[1](女声,取决于你的系统),不然运行时会报错,修正后示例如下:

# 设置为系统第一个语音
engine.setProperty('voice', voices[0])

替代方案(如果还是装不上)

要是以上方法都不行,可以考虑用sounddevice库替代PyAudio,它的兼容性更好,安装也更简单:

pip install sounddevice

不过需要注意调整speech_recognition的音频输入配置,大部分场景下都能无缝替换。

备注:内容来源于stack exchange,提问作者Asim Ali

火山引擎 最新活动