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 certas otimizações durante a compilação, como a remoção de declarações assert e docstrings (no caso do -OO). O arquivo .pyo resultante contém bytecode, que é uma representação de baixo nível do código Python capaz de ser executada pela Máquina Virtual Python (PVM - Python Virtual Machine). O uso de arquivos .pyo pode potencialmente melhorar o tempo de inicialização de programas Python, uma vez que a etapa de compilação já foi concluída. No entanto, os ganhos de desempenho são frequentemente insignificantes em implementações modernas do Python. Os arquivos .pyo são específicos para a versão do Python utilizada para compilá-los e não são legíveis por humanos. Eles são tipicamente usados em conjunto com arquivos .pyc (criados sem otimização) para distribuir código Python compilado. É importante notar que, a partir do Python 3.5, os arquivos .pyo foram substituídos por arquivos .pyc armazenados no diretório __pycache__, onde o nível de otimização é indicado no próprio nome do arquivo (por exemplo, .opt-1.pyc).