2017-02-22 132 views
2

PyAudio找不到任何输出设备

import pyaudio 
pa = pyaudio.PyAudio() 
pa.get_default_output_device_info() 

我得到:

IOError: No Default Output Device Available 

当我说:

p.get_device_count() 

它返回0L

当然如果我列出设备

for i in range(0, device_count): 
     print("Name: " + p.get_device_info_by_index(i)["name"]) 
     print("Index: " + p.get_device_info_by_index(i)["index"]) 
     print("\n") 

它不会打印出任何东西。

我运行Ubuntu 16.04,并通过去设置我的默认片:

pacmd list-sinks 
pacmd set-default-sink 0 

我的PulseAudio,ALSA,和portaudio的最新版本。有什么建议么?

更新:我也无法在Audacity上查看任何声音设备,尽管它们出现在系统设置>声音下。在Audacity中我得到的错误:

Error while opening sound device. Please check the recording device settings and the project sample rate.

我认为这几乎可以肯定是一个portaudio问题,因为设置页面的样子: enter image description here

+2

这可能类似于https://github.com/spatialaudio/python-sounddevice/issues/74? – Matthias

+0

您使用的是哪个版本的pyaudio?我熟悉音频系统,可能可以帮助您排查源代码的故障。但要发现问题,人们需要能够复制您的软件设置。 – user2133679

+0

@NullSalad你有什么话? –

回答

3

它可能是一个破碎的文件,需要更换。

  1. 搜索“/usr/./libstdc++.so.6”,其中pip安装它。

  2. 搜索“/usr/lib/x86_64-linux-gnu/libstdc++.so.6”并复制到位置(1)。这应该解决它。

  3. 如果您安装了Anaconda版本3 - 4.3.0或4.4.0或更低版本,请检查“anaconda3/lib/libstdC++。so.6”并重新替换为(2)。

或者A)重命名文件,并将从文件(2),其中重命名的旧的libstdC++。so.6文件或B)升级到蟒蛇到5.0.1版本,并运行conda update --all 。如果你做“B”不要忘记首先手动删除蛋或whls,以确保没有机会从那里再次安装旧软件。

这应该为您解决。

享受;-)

+0

在步骤1中,我已经在相对于/ usr /的许多位置安装了lib:: '/usr/lib/i386-linux-gnu/libstdc++.so.6 /usr/lib/i386-linux-gnu/libstdc++.so.6.0.22 /usr/lib/x86_64-linux-gnu/libstdc++.so.6 /usr/lib/x86_64-linux-gnu/libstdC++。 so.6.0.22 /usr/lib32/libstdc++.so.6 /usr/lib32/libstdc++.so.6.0.22 /usr/libx32/libstdc++.so.6 /usr/libx32/libstdc++.so。 6.0.22 /usr/local/MATLAB/R2016a/sys/os/glnxa64/libstdc++.so.6.0.17 /usr/local/MATLAB/R2016a/sys/os/glnxa64/libstdc++.so.6.old /USR /股/ GDB /我应该选择哪一个自动加载/ usr/lib目录/ I386-Linux的GNU /的libstdC++。so.6.0.22-gdb.py ' ? –

+0

(对不起,上面的丑陋的格式,我也不得不删除usr下/股/ ..几对空间的需求,我认为可能是无关紧要的:P) –

+0

它确实是很多。但是,我使用值1-11来命名这个堆栈中的每个单独路径。更换时将它们重命名为“旧”。用1,3和2,6,8,9替换1,5,7,10 4.“11”似乎是一个python文件或者是一个错字?如果仍然无效,请尝试用1和2或5,6或7,8替换全部。或者,如果以前的所有选项都不起作用,则可以全部替换为3。耗时的是类型调试;-( – ZF007