Lingua-e
← Errores
Python

Qué significa BrokenPipeError y cómo solucionarlo

Referencia del error

BrokenPipeError

Lenguaje

Python

Severidad

Baja

Cuándo ocurre

BrokenPipeError se lanza cuando un proceso intenta escribir en una tubería cuyo extremo de lectura ha sido cerrado.

Posibles soluciones

Captura BrokenPipeError alrededor de tus operaciones de escritura y sal limpiamente. Para scripts que escriben en stdout, cerrar sys.stderr antes de salir suprime el traceback ruidoso. Este es un comportamiento esperado en tuberías Unix y generalmente no es un error en tu código.

Errores relacionados

Más detalles

BrokenPipeError se lanza cuando un proceso intenta escribir en una tubería cuyo extremo de lectura ha sido cerrado. Ocurre comúnmente en tuberías Unix cuando un comando descendente (como head o grep) termina y cierra su stdin antes de que el proceso ascendente haya terminado de escribir.

Por qué ocurre

  • Redirigir la salida a un comando que termina anticipadamente (ej. head -1 o less).
  • Se escribe en un socket de red después de que el extremo remoto haya cerrado la conexión.
  • Un subproceso que lee de una tubería sale antes de consumir toda la salida.

Posibles soluciones

Captura BrokenPipeError alrededor de tus operaciones de escritura y sal limpiamente. Para scripts que escriben en stdout, cerrar sys.stderr antes de salir suprime el traceback ruidoso. Este es un comportamiento esperado en tuberías Unix y generalmente no es un error en tu código.

Ejemplos

Python

Código que causa el error

# python script.py | head -1
import sys
for i in range(1000):
    print(i)  # BrokenPipeError after head closes the pipe

Error en la terminal

BrokenPipeError: [Errno 32] Broken pipe

Código corregido

import sys

try:
    for i in range(1000):
        print(i)
except BrokenPipeError:
    # Reader closed early, that is fine
    sys.stderr.close()

Practica en inglés

¿Cómo le explicarías un BrokenPipeError a un compañero dev? Elige la frase correcta:

"I hit an error...

¿Listo para practicar tu inglés en el trabajo?

Lingua-e tiene ejercicios interactivos basados en conversaciones reales de developers: standups, code reviews, retrospectivas y más. Practica hasta que salga solo.

Prueba Lingua-e gratis