py_compile compila un archivo y compileall recorre directorios. Ambos detectan errores de sintaxis sin importar el módulo, por lo que ofrecen una comprobación rápida antes de pruebas más amplias.
Ejemplo práctico
from pathlib import Path
import py_compile
source = Path("example_module.py")
source.write_text("answer = 42\n", encoding="utf-8")
try:
py_compile.compile(source, doraise=True)
print("syntax is valid")
finally:
source.unlink(missing_ok=True)
Haz que el error sea explícito
En el ejemplo, doraise=True convierte el fallo en PyCompileError. En la terminal, ejecuta python -m compileall -q src y comprueba el código de salida en CI.
Qué contiene pycache
Los archivos .pyc guardan bytecode asociado con la versión y las reglas de invalidación del intérprete. Son caché, no un formato de distribución ni protección del código.
Límite de la comprobación
Compilar sin errores no detecta nombres ausentes en runtime, tipos incorrectos ni fallos de integración. Combínalo con pruebas y análisis estático adecuados.
Sigue aprendiendo
Refuerza la base con manejo de errores en Python. A documentación oficial de Python, consultada el 22 de julio de 2026, detalla la API, las limitaciones y las diferencias entre versiones.