Un archivo .pyo es una versión compilada de un archivo de código fuente de Python (.py). Se genera cuando Python se ejecuta utilizando los indicadores (flags) de optimización -O o -OO. Estos indicadores instruyen al intérprete de Python para realizar ciertas optimizaciones durante la compilación, como la eliminación de sentencias 'assert' y cadenas de documentación o 'docstrings' (específicamente con el flag -OO). El archivo .pyo resultante contiene bytecode, que es una representación de bajo nivel del código Python que puede ser ejecutada por la Máquina Virtual de Python (PVM). El uso de archivos .pyo puede mejorar potencialmente el tiempo de inicio de los programas de Python, ya que el paso de compilación ya se ha completado previamente. No obstante, las ganancias de rendimiento suelen ser insignificantes en las implementaciones modernas de Python. Los archivos .pyo son específicos de la versión de Python utilizada para compilarlos y no son legibles por humanos. Tradicionalmente se utilizaban junto con los archivos .pyc (creados sin optimización) para distribuir código Python compilado. Es importante notar que, desde Python 3.5 en adelante, los archivos .pyo han sido reemplazados por archivos .pyc almacenados en el directorio __pycache__, donde el nivel de optimización se indica directamente en el nombre del archivo (por ejemplo, .opt-1.pyc).