subprocess.CalledProcessError se lanza cuando un subproceso llamado con check=True sale con un código de retorno distinto de cero. Lleva el código de retorno, el comando y opcionalmente stdout/stderr para que puedas diagnosticar qué salió mal.
Por qué ocurre
- •El comando del subproceso sale con un código de estado distinto de cero y check=True está configurado.
- •Una herramienta externa (git, docker, npm) falla debido a un problema de configuración o entorno.
- •El comando no se encuentra o carece de permiso de ejecución.
- •El subproceso es terminado por una señal (código de retorno negativo).
Ejemplos
Código que causa el error
import subprocess
subprocess.run(["git", "push"], check=True)Error en la terminal
subprocess.CalledProcessError: Command '['git', 'push']' returned non-zero exit status 1
Cómo solucionarlo
Usa check=False e inspecciona result.returncode manualmente para mayor control. Siempre establece capture_output=True con text=True para poder leer stderr en caso de fallo. Registra el comando completo, el código de retorno y la salida de stderr para diagnosticar la causa raíz.
Código corregido
import subprocess
result = subprocess.run(
["git", "push"],
capture_output=True,
text=True,
)
if result.returncode != 0:
print("Push failed:", result.stderr)Errores relacionados
¿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