我在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:无默认输出设备可用”
好的,这不是一个漂亮的解决方案,但对我有用。根据我对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