已安装适配Python3.7的PyAudio-0.2.11仍触发AttributeError:找不到PyAudio问题求助
排查PyAudio安装后仍触发AttributeError的问题
我之前也碰到过一模一样的情况——明明下载了对应Python版本的PyAudio包,结果SpeechRecognition就是不认它。结合你的场景,咱们一步步来定位问题:
首先,先确认PyAudio是否真的安装到了你正在使用的Python环境里:
- 打开命令提示符,先运行
python --version,确认输出和你给出的版本信息完全匹配(3.7.0 64位)。很多人会同时装多个Python版本,很容易把包误装到其他环境里。 - 接着运行
pip list,查看输出里有没有PyAudio且版本为0.2.11。如果用了虚拟环境,一定要先激活虚拟环境再执行这两步。
然后,检查安装方式是否正确:
你下载的whl包版本是对的,但必须用pip来安装才生效。如果之前是双击或者用其他方式尝试安装,大概率没装到位。切换到whl包所在的文件夹,重新运行这个命令试试:
pip install PyAudio-0.2.11-cp37-cp37m-win_amd64.whl
接下来,测试PyAudio本身是否能正常导入:
先绕过SpeechRecognition,写一段极简代码直接测试PyAudio:
import pyaudio p = pyaudio.PyAudio() print(f"PyAudio版本: {p.get_version()}")
如果这段代码报错,说明PyAudio的安装本身有问题;如果能正常输出版本信息,那就是SpeechRecognition的兼容性问题,试试更新它:
pip install --upgrade SpeechRecognition
还有两种小概率情况可以排查:
- 系统权限问题:用管理员权限打开命令提示符,重新安装PyAudio和SpeechRecognition,Windows的权限限制有时候会导致包安装不完整。
- 模块路径问题:运行下面的命令,查看PyAudio的模块路径是否在当前Python的site-packages目录下:
python -c "import pyaudio; print(pyaudio.__file__)"
如果提示找不到模块,说明PyAudio根本没装到正确的路径里,需要重新检查安装环境。
你提供的代码和版本信息如下:
运行的代码:
def get_audio(): r = sr.Recognizer() with sr.Microphone() as source: audio = r.listen(source) said = "" try: said = r.recognize_google(audio) except Exception as e: print("Exception:", str(e)) return said.lower()
Python版本信息:
Python 3.7.0 (v3.7.0:1bf9cc5093, Jun 27 2018, 04:59:51) [MSC v.1914 64 bit (AMD64)] on win32
按上面的步骤排查下来,应该能找到问题根源。
内容的提问来源于stack exchange,提问作者yyyyyy
相关产品推荐
相关产品推荐

