pydub icon indicating copy to clipboard operation
pydub copied to clipboard

pydub.playback.play() raises `SystemError: PY_SSIZE_T_CLEAN macro must be defined for '#' formats`

Open nukemiko opened this issue 2 years ago • 4 comments

Steps to reproduce

In [1]: from pydub import AudioSegment, playback
In [2]: segment = AudioSegment.from_file('/home/menacing/Music/Local/Open your eyes.flac')
In [3]: playback.play(segment)

Expected behavior

Audio should be played normally.

Actual behavior

Outputs of section "Steps to reporduce" mentioned:

ALSA lib pcm.c:2664:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.rear
ALSA lib pcm.c:2664:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.center_lfe
ALSA lib pcm.c:2664:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.side
ALSA lib pcm_route.c:877:(find_matching_chmap) Found no matching channel map
ALSA lib pcm_route.c:877:(find_matching_chmap) Found no matching channel map
ALSA lib pcm_route.c:877:(find_matching_chmap) Found no matching channel map
ALSA lib pcm_route.c:877:(find_matching_chmap) Found no matching channel map
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
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
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
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
ALSA lib pcm_oss.c:397:(_snd_pcm_oss_open) Cannot open device /dev/dsp
ALSA lib pcm_oss.c:397:(_snd_pcm_oss_open) Cannot open device /dev/dsp
ALSA lib pcm_a52.c:1001:(_snd_pcm_a52_open) a52 is only for playback
ALSA lib confmisc.c:160:(snd_config_get_card) Invalid field card
ALSA lib pcm_usb_stream.c:482:(_snd_pcm_usb_stream_open) Invalid card 'card'
ALSA lib confmisc.c:160:(snd_config_get_card) Invalid field card
ALSA lib pcm_usb_stream.c:482:(_snd_pcm_usb_stream_open) Invalid card 'card'
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
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
---------------------------------------------------------------------------
SystemError                               Traceback (most recent call last)
Input In [5], in <cell line: 1>()
----> 1 playback.play(segment)

File /usr/lib/python3.10/site-packages/pydub/playback.py:64, in play(audio_segment)
     61     return
     63 try:
---> 64     _play_with_pyaudio(audio_segment)
     65     return
     66 except ImportError:

File /usr/lib/python3.10/site-packages/pydub/playback.py:33, in _play_with_pyaudio(seg)
     30 try:
     31     # break audio into half-second chunks (to allows keyboard interrupts)
     32     for chunk in make_chunks(seg, 500):
---> 33         stream.write(chunk._data)
     34 finally:
     35     stream.stop_stream()

File /usr/lib/python3.10/site-packages/pyaudio.py:585, in Stream.write(self, frames, num_frames, exception_on_underflow)
    582     num_frames = int(len(frames) / (self._channels * width))
    583     #print len(frames), self._channels, self._width, num_frames
--> 585 pa.write_stream(self._stream, frames, num_frames,
    586                 exception_on_underflow)

SystemError: PY_SSIZE_T_CLEAN macro must be defined for '#' formats

Your System configuration

  • Python version: 3.10.5
  • Pydub version: 0.25.1
  • ffmpeg or avlib?: ffmpeg
  • ffmpeg/avlib version: ffmpeg 2:5.0.1-2

nukemiko avatar Jun 17 '22 11:06 nukemiko

I'm same with your error, plz

ZYM66 avatar Mar 19 '23 07:03 ZYM66

same problem. Any fixes?

Diyago avatar May 01 '23 08:05 Diyago

Anyone figure this out?

pdeitel avatar Sep 25 '23 20:09 pdeitel

+1

edit: I solved this by using python 3.9, 3.10 was causing issues. tmp workaround for me

gordicaleksa avatar Nov 06 '23 22:11 gordicaleksa