Un file .pyo è una versione compilata di un file sorgente Python (.py). Viene creato quando Python viene eseguito con i flag di ottimizzazione -O o -OO. Questi flag istruiscono l'interprete Python a eseguire alcune ottimizzazioni durante la compilazione, come la rimozione delle istruzioni assert e delle docstring (con -OO). Il file .pyo risultante contiene bytecode, che è una rappresentazione a livello più basso del codice Python che può essere eseguita dalla Macchina Virtuale Python (PVM). L'utilizzo di file .pyo può potenzialmente migliorare il tempo di avvio dei programmi Python, poiché la fase di compilazione è già stata completata. Tuttavia, i guadagni di prestazioni sono spesso trascurabili nelle moderne implementazioni di Python. I file .pyo sono specifici della versione di Python utilizzata per compilarli e non sono leggibili dall'uomo. Sono tipicamente utilizzati in combinazione con i file .pyc (che vengono creati senza ottimizzazione) per distribuire codice Python compilato. Si noti che con Python 3.5 e versioni successive, i file .pyo sono sostituiti dai file .pyc memorizzati nella directory __pycache__, e il livello di ottimizzazione è indicato nel nome del file .pyc (ad esempio, .opt-1.pyc).