Um arquivo .pyo é uma versão compilada de um arquivo de código-fonte Python (.py). Ele é criado quando o Python é executado com as flags de otimização -O ou -OO. Essas flags instruem o interpretador Python a realizar algumas otimizações durante a compilação, como a remoção de declarações assert e docstrings (no caso da flag -OO). O arquivo .pyo resultante contém bytecode, que é uma representação de baixo nível do código Python que pode ser executada pela Máquina Virtual Python (PVM). O uso de arquivos .pyo pode potencialmente melhorar o tempo de inicialização de programas Python, já que a etapa de compilação já foi concluída. No entanto, os ganhos de desempenho são frequentemente negligenciáveis em implementações modernas do Python. Os arquivos .pyo são específicos da versão do Python usada para compilá-los e não são legíveis por humanos. Eles são tipicamente usados em conjunto com arquivos .pyc (que são criados sem otimização) para distribuir código Python compilado. Observe que, a partir do Python 3.5, os arquivos .pyo foram substituídos por arquivos .pyc armazenados no diretório __pycache__, e o nível de otimização é indicado dentro do nome do arquivo .pyc (por exemplo, .opt-1.pyc).