Файл .pyo представляет собой скомпилированную версию исходного файла на языке Python (.py). Он создается, когда Python запускается с флагами оптимизации -O или -OO. Эти флаги предписывают интерпретатору Python выполнить определенные оптимизации во время компиляции, такие как удаление операторов assert (утверждений) и строк документации (docstrings) (при использовании флага -OO). Полученный файл .pyo содержит байт-код (bytecode), который является низкоуровневым представлением кода Python, способным выполняться Виртуальной Машиной Python (PVM). Использование файлов .pyo потенциально может сократить время запуска программ на Python, поскольку этап компиляции уже выполнен. Однако прирост производительности часто незначителен в современных реализациях Python. Файлы .pyo специфичны для той версии Python, которая использовалась для их компиляции, и они не предназначены для чтения человеком. Они обычно использовались совместно с файлами .pyc (которые создаются без оптимизации) для распространения скомпилированного кода Python. Следует отметить, что начиная с Python 3.5 и более поздних версий, файлы .pyo были заменены файлами .pyc, хранящимися в каталоге __pycache__, при этом уровень оптимизации указывается в имени самого файла .pyc (например, .opt-1.pyc).