Anaconda环境下PyAudio导入_portaudio模块失败问题求助
解决Anaconda环境下PyAudio导入时的
_portaudio DLL缺失问题 我之前在Anaconda环境里折腾PyAudio的时候也踩过这个DLL加载的坑,常规pip安装的PyAudio经常和conda的依赖环境不兼容,给你几个亲测有效的解决办法:
方案1:用conda-forge渠道安装适配版PyAudio
直接放弃pip,用conda官方维护的适配包,这个能从根源解决依赖问题。打开Anaconda Prompt,激活你的环境(如果不是base的话),然后运行:
conda install -c conda-forge pyaudio
安装完成后再运行你的脚本,大概率能解决DLL找不到的问题。
方案2:手动补充PortAudio DLL文件
如果conda安装还是不行,那就手动把缺失的PortAudio DLL补到环境里:
- 先确认你的Anaconda是32位还是64位,下载对应位数的PortAudio预编译DLL(注意要选Windows版本的)
- 找到你的Anaconda环境的
site-packages目录,就是你报错里的C:\Users\Talha\Anaconda3\lib\site-packages - 把下载好的
portaudio_x64.dll(或x86版本)复制到这个目录里,然后重启Python解释器再试
方案3:确保用的是Anaconda的Python解释器
有时候编辑器(比如VS Code)会自动切换到系统Python,导致你装的PyAudio不在当前运行环境里。可以打开Anaconda Prompt,先激活环境:
conda activate base
然后cd到脚本所在目录,运行:
python aa.py
另外,你的代码里还有个小细节要注意:play_audio('\sms.wav')里的\s会被Python解析成空白转义字符,导致找不到音频文件,改成原始字符串或者双反斜杠:
play_audio(r'\sms.wav') # 或者 play_audio('\\sms.wav')
附上你提供的报错信息和代码,方便参考:
报错回溯:
Traceback (most recent call last): File "c:/Users/Talha/Desktop/Python/aa.py", line 1, in <module> import pyaudio File "C:\Users\Talha\Anaconda3\lib\site-packages\pyaudio.py", line 116, in <module> import _portaudio as pa ImportError: DLL load failed: The specified module could not be found.
原始代码:
import pyaudio import wave def play_audio(file): chunk = 1024 wf=wave.open(file,'rb') pa = pyaudio.PyAudio() stream = pa.open( format=pa.get_format_from_width(wf.getsampwidth()), channels= wf.getnchannels(), rate=wf.getframerate(), output=True ) data_stream = wf.readframes(chunk) while data_stream: stream.write(data_stream) data_stream=wf.readframes(chunk) stream.close() pa.terminate() play_audio('\sms.wav')
内容的提问来源于stack exchange,提问作者11Guy
相关产品推荐
相关产品推荐

