树莓派3升级PyAudio至0.2.11版本失败求助
解决树莓派PyAudio升级后版本未更新的问题
从你的日志和输出来看,问题核心是系统自带的PyAudio包被pip跳过卸载——日志里那句Not uninstalling PyAudio at /usr/lib/python2.7/dist-packages, owned by OS就是关键:pip默认不会触碰系统包管理(比如apt)安装的软件,所以虽然你成功装了0.2.11,但Python会优先加载系统目录里的0.2.8版本。
下面是几个可行的解决办法,按推荐程度排序:
1. 使用虚拟环境隔离(最稳妥,避免系统依赖冲突)
虚拟环境能彻底隔离你的项目依赖和系统包,不会影响系统原有配置:
- 先安装virtualenv:
sudo pip install virtualenv - 创建一个新的虚拟环境(比如叫
audio_env):virtualenv audio_env - 激活虚拟环境:
source audio_env/bin/activate - 现在在激活的环境里安装最新版PyAudio,这次不会有系统包的干扰:
pip install pyaudio --upgrade - 验证版本:
肯定会显示0.2.11,之后你的项目只要在这个虚拟环境里运行就会用新版。pip show pyaudio
2. 卸载系统包后重新安装(直接替换系统级版本)
如果你的系统没有其他依赖旧版PyAudio的软件,可以直接移除系统包再装新版:
- 先卸载系统自带的PyAudio:
sudo apt-get remove python-pyaudio - 安装新版PyAudio(如果之前没装portaudio依赖,先补装):
sudo apt-get install portaudio19-dev sudo pip install pyaudio --upgrade - 验证:
现在版本应该就是0.2.11了。sudo pip show pyaudio
3. 临时指定模块加载路径(不改动系统,仅针对单个项目)
如果你不想动系统包,也可以让你的Python脚本优先加载新版PyAudio:
- 先找到新版PyAudio的安装位置,执行:
看输出里的pip show --files pyaudioLocation字段,比如可能是/usr/local/lib/python2.7/dist-packages - 在你的Python代码最开头添加以下内容,让Python先加载这个目录的模块:
import sys # 替换成你查到的新版PyAudio所在目录 sys.path.insert(0, '/usr/local/lib/python2.7/dist-packages') import pyaudio print(pyaudio.__version__) # 应该输出0.2.11
补充说明
如果安装PyAudio时遇到编译错误,大概率是缺少portaudio依赖,先执行sudo apt-get install portaudio19-dev再重试安装。
内容的提问来源于stack exchange,提问作者Elias
相关产品推荐
相关产品推荐

