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 instruções assert e docstrings (com -OO). O arquivo .pyo resultante contém bytecode, que é uma representação de nível mais baixo 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, visto que a etapa de compilação já foi realizada. No entanto, os ganhos de desempenho são frequentemente negligenciáveis nas implementações modernas do Python. Arquivos .pyo são específicos para a 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. Note que, com o Python 3.5 e versões posteriores, os arquivos .pyo são substituídos por arquivos .pyc armazenados no diretório __pycache__, e o nível de otimização é indicado no nome do arquivo .pyc (por exemplo, .opt-1.pyc).