Un fichier .pyo est une version compilée d'un fichier de code source Python (.py). Il est créé lorsque Python est exécuté avec les drapeaux d'optimisation -O ou -OO. Ces drapeaux indiquent à l'interpréteur Python d'effectuer certaines optimisations pendant 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 Python modernes. 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 les 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).