小编典典

PyAudio IOError:没有默认输入设备可用

python

我在Ubuntu 10.10 x64中的Enthought Python发行版(Python 2.6.6)下使用PyAudio。

>>> import pyaudio
>>> pa = pyaudio.PyAudio()
>>> pa.get_default_input_device_info()

Traceback (most recent call last):
  File "<pyshell#24>", line 1, in <module>
    pa.get_default_input_device_info()
  File "/usr/lib/python_epd/lib/python2.6/site-packages/pyaudio.py", line 936, in get_default_input_device_info
    device_index = pa.get_default_input_device()
IOError: No Default Input Device Available

这是我尝试打开输入流时遇到的相同错误。没有相应的错误“ IOError:无默认输出设备可用”


阅读 223

收藏
2020-12-20

共1个答案

小编典典

好的,这不是一个漂亮的解决方案,但对我有用。根据我对ulidtko答案的评论,pyaudio不是问题,而是pyaudio应该绑定到的底层PortAudio。

在ubuntu上,portaudio驱动程序与此软件包一起安装:

sudo apt-get install python-gnuradio-audio-portaudio

您必须已经拥有了它,因为您说过您的股票ubuntu可以很好地运行代码(尽管有些调试消息可以忽略)

如果查询portaudio模块的位置,则在运行enthought的python时会发现以下内容:

>>> import pyaudio
>>> pyaudio.pa.__file__
'/opt/epd-7.2-2-rh5-x86_64/lib/python2.7/site-packages/_portaudio.so'

以及库存ubuntu上的以下内容:

In [1]: import pyaudio
In [2]: pyaudio.pa.__file__
Out[2]: '/usr/lib/pymodules/python2.7/_portaudio.so'

我移开了想念的_portaudio.so并用指向系统_portaudio.so的链接替换了它,现在一切都包括在chaco demo /
advanced目录中的可爱的频谱分析仪起作用了:

cd /opt/epd-7.2-2-rh5-x86_64/lib/python2.7/site-packages/
mv _portaudio.so _portaudio.so.originalEPD
ln -s /usr/lib/pymodules/python2.7/_portaudio.so
2020-12-20