python - PyAudio IOError : No Default Input Device Available

标签 python portaudio pyaudio enthought

我在 Ubuntu 10.10 x64 的 Enthought Python Distribution (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: No Default Output Device Available”

最佳答案

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

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

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

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

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

>>> 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'

我将 enthought _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

关于python - PyAudio IOError : No Default Input Device Available,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4672155/

相关文章:

python - 从回调中查找父函数的参数

warnings - python setup.py Egg_info 未成功运行。警告 : Ignoring invalid distribution -yaudio

python - 如何在 python 中将 zip 文件作为附件发送?

python - 给定两个时间戳,我如何根据 "business minutes"返回增量

python - PyAudio : What is the most efficient format and pack/unpack method to use in callback mode?

python - 将 pyaudio 安装到 docker 容器

Python:如何将 Tkinter 文本标签与信息关联并在事件中访问它们?

python - 使用 python 发送屏幕截图

c - XCode 5.1 中的 "' portaudio.h ' file not found"错误

speech-recognition - ImportError : libportaudio. so.2: 无法打开共享对象文件: raspberry-pi4 中没有这样的文件或目录