Un archivo .pyo es una versión compilada de un archivo de código fuente de Python (.py). Se crea cuando Python se ejecuta con las banderas de optimización -O o -OO. Estas banderas indican al intérprete de Python que realice algunas optimizaciones durante la compilación, como la eliminación de sentencias assert y docstrings (con -OO). El archivo .pyo resultante contiene bytecode, que es una representación de nivel inferior 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 está realizado. Sin embargo, las ganancias de rendimiento a menudo son 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. Típicamente se utilizan junto con archivos .pyc (que se crean sin optimización) para distribuir código Python compilado. Tenga en cuenta que con Python 3.5 y versiones posteriores, los archivos .pyo son reemplazados por archivos .pyc almacenados en el directorio __pycache__, y el nivel de optimización se indica dentro del nombre del archivo .pyc (por ejemplo, .opt-1.pyc).