Node.js lanza un error spawn ENOENT cuando child_process.spawn() no puede encontrar el ejecutable especificado. Este es el equivalente del proceso de spawn de ENOENT para archivos: el binario no existe en ninguna ubicación del PATH del sistema.
Por qué ocurre
- •El nombre del ejecutable es incorrecto o usa un nombre diferente en este SO (python vs python3).
- •La herramienta no está instalada en el sistema.
- •La herramienta está instalada pero no está en la variable de entorno PATH.
- •En Windows, falta la extensión .exe o se usan rutas de estilo Unix.
Ejemplos
Código que causa el error
const { spawn } = require("child_process");
const proc = spawn("python", ["script.py"]);
proc.on("error", console.error);Error en la terminal
Error: spawn python ENOENT
errno: -2,
code: 'ENOENT',
syscall: 'spawn python',
path: 'python'Cómo solucionarlo
Verifica que el ejecutable exista con which <comando> (Unix) o where <comando> (Windows). Usa la ruta absoluta completa al ejecutable. Asegúrate de que la herramienta requerida esté instalada como parte de tu configuración CI/CD. Usa process.env.PATH para depurar qué directorios se buscan.
Código corregido
const { spawn } = require("child_process");
// Use 'python3' on systems where python3 is the correct binary
const proc = spawn("python3", ["script.py"]);
proc.on("error", (err) => {
if (err.code === "ENOENT") {
console.error("python3 not found in PATH");
}
});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