PyAudio cannot find any output devices

Null Salad picture Null Salad · Feb 23, 2017 · Viewed 12.8k times · Source

When I run:

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

I get:

IOError: No Default Output Device Available

When I say:

pa.get_device_count()

It returns 0L.

And of course if I list devices

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

It will not print anything.

I'm running Ubuntu 16.04 and have set my default sink by going:

pacmd list-sinks
pacmd set-default-sink 0

I have the latest versions of PulseAudio, ALSA, and PortAudio. Any suggestions?

Update: I also can't view any sound devices on Audacity, despite the fact that they appear under System Settings>Sound. In Audacity I get the error:

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

I think that this is almost certainly a PortAudio issue since the settings page looks like: enter image description here

Answer

ZF007 picture ZF007 · Feb 6, 2018

Its likely a broken file that needs replacement.

  1. Search for "/usr/./libstdc++.so.6" where pip installed it.

  2. Search for "/usr/lib/x86_64-linux-gnu/libstdc++.so.6" and copy to location at (1). This should fix it.

  3. If you have Anaconda version 3 - 4.3.0 or 4.4.0 or earlier installed then check at "anaconda3/lib/libstdc++.so.6" and replance with (2).

Alternatively A) rename the file and place the file from (2) where you renamed the old libstdc++.so.6 file or B) upgrade to Anaconda to 5.0.1 version and run conda update --all. And if you do "B" don't forget to remove the eggs or whls manually first to be sure there is no chance installing old software from there again.

This should fix it for you.

Enjoy ;-)