Un fichier .pyo est une version compilée d'un fichier source Python (.py). Il est créé lorsque Python est exécuté avec les indicateurs d'optimisation -O ou -OO. Ces indicateurs indiquent à l'interpréteur Python d'effectuer certaines optimisations lors de la compilation, telles que la suppression des instructions assert et des docstrings (avec -OO). Le fichier .pyo résultant contient du bytecode, qui est une représentation de plus bas niveau du code Python pouvant être exécutée par la Machine Virtuelle Python (PVM). L'utilisation de fichiers .pyo peut potentiellement améliorer le temps de démarrage des programmes Python, car l'étape de compilation est déjà effectuée. Cependant, les gains de performance sont souvent négligeables dans les implémentations modernes de Python. Les fichiers .pyo sont spécifiques à la version de Python utilisée pour les compiler et ne sont pas lisibles par l'homme. Ils sont généralement utilisés conjointement avec les fichiers .pyc (qui sont créés sans optimisation) pour distribuer du code Python compilé. Il est à noter qu'avec Python 3.5 et versions ultérieures, les fichiers .pyo sont remplacés par des fichiers .pyc stockés dans le répertoire __pycache__, et le niveau d'optimisation est indiqué dans le nom du fichier .pyc (par exemple, .opt-1.pyc).