For those who happen to find themselves at this old question via Google:
The message displayed by pyaudio...
jack server is not running or cannot be started
...is informative, not an error. It means that portaudio tried and failed to connect to Jack, but doesn't mean that it gave up on everything.
At that point, you should have a fully functional PyAudio object using ALSA. You can verify this by, e.g., looking at a list of available devices:
>>> import pyaudio
>>> pa = pyaudio.PyAudio()
[...lots of crap from ALSA...]
Cannot connect to server socket err = No such file or directory
Cannot connect to server request channel
jack server is not running or cannot be started
>>> print '\n'.join([y['name']
... for y in [pa.get_device_info_by_index(x)
... for x in range(pa.get_device_count())]])
bcm2835 ALSA: - (hw:0,0)
bcm2835 ALSA: IEC958/HDMI (hw:0,1)
USB Audio Device: - (hw:2,0)
sysdefault
dmix
default
jackstart
? You may also use qjackctl.sourceforge.net to control the JACK daemon if you like a graphical user interface better. Anyway, post the daemon's startup output. – Sawmillpyaudio.paALSA
topa.open()
rather than relying on the system to choose. – Misstateaudio
group. And the error messages were about the same. – Cargo