ubuntu OSError:[Errno-9996] Invalid input device(Ubuntu安装pyaudio踩的坑)
作者:互联网
遇到问题及经历:
1月5日,6日安装pyaudio成功,但是运行程序的时候会报错ubuntu OSError:[Errno-9996] Invalid input device,表示找不到输入设备。
google查找错误原因是没有查找到,csdn上也没有相关的帖子和错误。
(吐槽:搜的还全是四五年前的帖子,都是僵尸贴,都没个有用的,呸!)
检查ubuntu虚拟机功能,录音和播放功能都是正常的。开始怀疑是配置的问题。
转过头看一下我安装配置的步骤,我的pyaudio安装配置步骤是按照我5号写的博客(点击查看原文)上面的方法安装的。
按照方法一:
sudo apt-get install python-pyaudio python3-pyaudio
安装以后,pyaudio的确是安装上去了,安装是pyaudio0.2.8的版本。在运行demo程序的时候会报错:
Please build and install the PortAudio Python bindings first
按照方法二:
安装好portaudio19-dev和python-dev后再pip3 install pyaudio
会自动安装最新版的pyaudio·版本是0.2.11。
运行程序的时候就会报错
ubuntu OSError:[Errno-9996] Invalid input device
两种方虽然都把pyaudio安装成功了,但是在运行程序的时候都是会报错的。方法一报错的Please build and install the PortAudio Python bindings first。我后面追加安装了portaudio19-dev还是会报错,然后我把pyaudio0.2.8的包卸载后,重新pip自动安装的就是0.2.11的版本,在0.2.11环境下就是报错ubuntu OSError:[Errno-9996] Invalid input device。按这个来看就是我在安装portaudio19-dev和python-dev的时候不对。根据官方文档的说法就是这两个东西是必不可少的。
解决过程:
回顾我之前安装这两玩意儿的步骤,安装portaudio19-dev的时候是下载tgz的压缩包,解压后在进行配置安装,步骤是没有问题。也显示success install portaudio了。安装python-dev的时候是使用apt安装的。
最有可能出问题就是安装portaudio19-dev到的时候,手动安装。虽然检查好几遍,所有步骤都是没问题的,也不用自行修改什么配置文件。但难说就是那一处有问题了。那就重头再来一下吧。幸好之前有拍过快照,直接转到上一次快照。
网上所有的帖子和官网都是说下载压缩包,解压进入portaudio目录,./configure
,make
,make install
再来一次我偏不,我就要用apt来!!!!
自动他不香咩,手动受罪干嘛????
sudo apt-get install portaudio19-dev
portaudio19-dev安装好就是安装python-dev了
sudo apt-get install python3.6-dev
如果会出现连接超时,下载不了的问题。后面加上点东西。
sudo apt-get install python3.6-dev --fix-missing
下载安装成功。
接下来就是pip下载pyaudio
pip3 install pyaudio
测试一下:
调用未报错:Please build and install the PortAudio Python bindings first
用个demo测试一下:
成功!!!!
写在文末:官网上面写的是要python-all-dev,本来应该是使用
sudo apt-get install portaudio19-dev python-all-dev python3-all-dev
一次性都给他下载了,但是我下载的时候发现ubuntu日志信息中python3他给我下是3.5的。
我的环境是python3.6的(别问我为什么不用ubuntu自带的python3.5 ╭(╯^╰)╮)。赶紧伸出我的黄金无名指和中指,Ctrl+Z给他终止妊娠。最后下载python3.6-dev就可。
遇到同样的问题的朋友一定看清楚自己的环境和配置在搞,不然坑真的多(ಥ﹏ಥ)
标签:portaudio19,OSError,Errno,pyaudio,dev,报错,install,安装 来源: https://blog.csdn.net/qq_37268093/article/details/112317970