es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

SystemError en PyAudio.write: La macro PY_SSIZE_T_CLEAN debe estar definida para los formatos con ‘#’.

Cuando intentaba reproducir un archivo wave con PyAudio-0.2.11 en un entorno virtual de python-3.10.1 (creado con python-3.9.0 venv y actualizado), recibí una excepción y no se reproduce nada, los demás funcionan correctamente.
stderr
Exception in thread WavPlayer:rsrc/sound.wav:
Traceback (most recent call last):
File "/usr/lib/python3.10/threading.py", line 1009, in _bootstrap_inner
self.run()
File "/Code/py/tetris/tetris.py", line 39, in run
self.play()
File "/Code/py/tetris/tetris.py", line 35, in play
self.stream.write(data)
File "/Code/py/tetris/.venv/lib/python3.10/site-packages/pyaudio.py", line 584, in write
pa.write_stream(self._stream, frames, num_frames,
SystemError: La macro PY_SSIZE_T_CLEAN debe estar definida para los formatos '#'

No sé qué significa el formato '#', y estoy seguro de que mi código no tiene nada que ver con la API de C, pero funciona correctamente con python-3.9.x, ¿es un problema con la biblioteca PyAudio en sí misma? ¿Cómo puedo solucionarlo?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    El mensaje de error indica que hay un problema con la biblioteca PyAudio que estás utilizando. Específicamente, parece estar relacionado con la macro PY_SSIZE_T_CLEAN que no está definida para el formato ‘#’. Este error no parece estar relacionado con tu código o la versión de Python que estás utilizando.

    Es probable que el problema sea con PyAudio y su compatibilidad con Python 3.10.1. Puedes verificar si hay problemas conocidos o actualizaciones relacionadas con PyAudio y Python 3.10.1.

    Para resolver el problema, puedes intentar lo siguiente:

    1. Actualiza a la última versión de PyAudio y verifica si el problema persiste.
    2. Regresa a Python 3.9.x, donde has confirmado que el código funciona.
    3. Considera utilizar una biblioteca alternativa para reproducir archivos de audio, como simpleaudio o playsound, que pueden ser más compatibles con Python 3.10.1.

    En última instancia, la mejor opción dependerá de los requisitos y limitaciones específicas de tu proyecto.

Comments are closed.