.PYO

Arquivo PYO

Python Optimized Bytecode File (legacy)
Fazer uma pergunta
RESPOSTA RÁPIDA

Um arquivo .pyo é um cache de bytecode otimizado do Python legado, gerado ao executar o Python com a flag -O ou -OO. O formato binário é idêntico a um arquivo .pyc. O Python 3.5 eliminou a extensão .pyo em 2015 (PEP 488), portanto, se você encontrar um hoje, ele provém do Python 2 ou Python 3.0-3.4. Você pode executá-lo via linha de comando com uma versão compatível do Python ou descompilá-lo de volta para .py com o decompyle3 ou uncompyle6.

Desenvolvedor: Python Software Foundation (CPython) Categoria: Arquivos de Desenvolvedor Padrão aberto MIME: application/x-python-code
ABRE EM Windows macOS Linux Web
Relacionado: .DO · .MD · .HEX · .XSD

Nesta página

19k+ extensões indexadas
Última revisão em Jun 27, 2026

Não tem certeza do que é seu arquivo?

Arraste qualquer arquivo para o nosso identificador - lemos apenas os primeiros bytes para nomear o formato.

Identificar um arquivo

O que é o formato de ficheiro PYO?

Um arquivo .pyo é um arquivo de bytecode otimizado do Python legado produzido pelo interpretador CPython quando executado com a flag -O (otimizar) ou -OO. Passar -O remove as instruções assert do bytecode compilado; passar -OO adicionalmente remove todas as docstrings, reduzindo ligeiramente o tamanho do arquivo.

Internamente, os arquivos .pyo são idênticos em formato, byte a byte, aos arquivos .pyc: um cabeçalho de 16 bytes (número mágico de 4 bytes específico da versão, campo de flags de 4 bytes, timestamp ou hash de origem de 4 bytes, tamanho da origem de 4 bytes) seguido por um objeto de código CPython serializado (marshalled). O nível de otimização é refletido apenas no conteúdo compilado - nunca no cabeçalho do arquivo.

A extensão .pyo foi descontinuada no Python 3.5 pela PEP 488 (setembro de 2015) e não é mais gerada por nenhuma versão atual do Python. A partir do Python 3.5, o bytecode otimizado é armazenado dentro de __pycache__ com nomes como module.cpython-311.opt-1.pyc (para -O) ou .opt-2.pyc (para -OO). Se você encontrar um arquivo .pyo hoje, ele se origina de código Python 2 ou Python 3.0-3.4.

Arquivos .pyo não são portáveis entre versões do CPython - o número mágico muda a cada lançamento. Ferramentas como uncompyle6 (Python 2-3.8) e decompyle3 (Python 3.7-3.11) podem descompilar arquivos .pyo de volta para o código-fonte .py aproximado, embora a precisão varie conforme a versão do Python e a complexidade do código.

Segurança e proteção

RISCO: MEDIUM

Um arquivo .pyo é executado como bytecode do Python com todas as capacidades de um script Python - acesso ao sistema de arquivos, rede, execução de subprocessos. Nunca execute um .pyo de uma fonte não confiável. Softwares antivírus geralmente não escaneiam o conteúdo de arquivos .pyo. Aplicativos Python maliciosos às vezes são distribuídos apenas como bytecode (.pyc/.pyo) para dificultar a engenharia reversa, embora descompiladores possam recuperar grande parte do código-fonte.

Detalhes do formato

em resumo
NOME COMPLETOPython Optimized Bytecode File (legacy)também conhecido como Python compiled optimized file, PYO file
DESENVOLVEDORPython Software Foundation (CPython)desde Early CPython (1990s); same as .pyc but with optimizations (assert removal with -O; docstring removal with -OO)
TIPO MIMEapplication/x-python-code
TIPOBytecode binário do CPython (mesmo formato que .pyc; gerado com flag -O ou -OO)
PADRÃOAberto · livre de royalties
RELACIONADO.do.md.hex.xsd

Programas que abrem arquivos PYO

Windows4 apps
Python (run the file) Código aberto Execute «python arquivo.pyo» no prompt de comando (apenas Python 2 / 3.0-3.4). No Python 3.5+, renomeie para .pyc primeiro ou use a versão correspondente do Python.
decompyle3 (decompile to .py) Código aberto pip install decompyle3 e então «decompyle3 arquivo.pyo > arquivo.py». Funciona em bytecode do Python 3.7-3.8.
uncompyle6 (decompile Python 2-3.8) Código aberto pip install uncompyle6 e então «uncompyle6 arquivo.pyo > arquivo.py». Suporta Python 2.4-3.8.
VS Code (view bytecode with extension) Código aberto Renomeie .pyo para .pyc, então use a extensão «Python Disassembler» ou «Bytecode Viewer» para inspecionar os opcodes.
macOS1 app
Python Código aberto Execute «python arquivo.pyo» com a versão correspondente do Python. A maioria das distribuições Linux inclui o Python.
Linux1 app
Python Código aberto Execute «python arquivo.pyo» com a versão correspondente do Python. A maioria das distribuições Linux inclui o Python.
Web1 app
Decompiler.com (online decompile) Gratuito Faça o upload do arquivo .pyo; o site descompila o bytecode do Python (incluindo .pyo) de volta para .py no navegador.

Detalhes técnicos

especificação profunda
Relação de formatoFormato de arquivo idêntico byte a byte ao `.pyc`; distinguido apenas pela extensão do nome do arquivo e pelo conteúdo de otimização
Estrutura do cabeçalhoCabeçalho de 16 bytes: magic de versão de 4 bytes + flags de 4 bytes + mtime ou hash de origem de 4 bytes + tamanho da origem de 4 bytes
Formato do corpoObjeto de código CPython serializado (instruções de bytecode, pool de constantes, nomes, nomes de variáveis, objetos de código aninhados)
Ordem dos bytesLittle-endian (formato de serialização marshal do CPython)
Nível de otimização -ORemove instruções `assert` do bytecode compilado
Nível de otimização -OORemove instruções `assert` e todas as docstrings do bytecode compilado
DescontinuaçãoExtensão `.pyo` eliminada no Python 3.5 (PEP 488, setembro de 2015); não gerada por nenhuma versão atual do Python
Equivalente moderno`module.cpython-3X.opt-1.pyc` (nível 1) ou `.opt-2.pyc` (nível 2) armazenado em `__pycache__`
Portabilidade de versãoNão é portável entre versões do CPython; o número mágico nos bytes 0-3 muda a cada lançamento principal do CPython
Validação de integridadePython 3.7+ (PEP 552): SipHash opcional da origem armazenado nas flags do cabeçalho; Python 2 / início do 3: apenas comparação de mtime
Ferramentas de descompilação`uncompyle6` (Python 2-3.8), `decompyle3` (Python 3.7-3.11)
Escopo legadoProduzido apenas pelo Python 2 ou Python 3.0-3.4; não encontrado em projetos voltados para Python 3.5 ou posterior
LançadoEarly CPython (1990s); same as .pyc but with optimizations (assert removal with -O; docstring removal with -OO)
Versão mais recenteDEPRECATED in Python 3.5 (PEP 488, September 2015) - .pyo extension no longer generated; replaced by .cpython-3X.opt-1.pyc / .opt-2.pyc naming
Padrão abertoSim · livre de royalties
Especificaçãopeps.python.org

Conversões de PYO

Perguntas e Respostas da Comunidade

perguntado por usuários
Faça uma pergunta rápida
Obtenha ajuda de pessoas que trabalham com arquivos PYO. Seja específico - inclua seu sistema e a versão do software.
Não é necessário criar conta · respostas geralmente em um dia

Ainda não há perguntas - seja o primeiro a perguntar sobre arquivos PYO.

Perguntas frequentes

O que é um arquivo .pyo?
Um arquivo de bytecode otimizado do Python legado - a forma compilada de um script .py criado com as flags de otimização -O ou -OO do Python. Possui formato binário idêntico ao .pyc; gerado pelo Python 2 e Python 3.0-3.4. O Python 3.5+ não cria mais arquivos .pyo.
Como abro um arquivo .pyo?
Você não o abre diretamente - o Python o executa automaticamente. Para ler seu conteúdo, use o decompyle3 ou uncompyle6 para descompilá-lo de volta para o código-fonte .py, ou renomeie para .pyc e use um desassemblador de bytecode.
Posso excluir arquivos .pyo?
Sim - arquivos .pyo são caches de bytecode. O Python os recria se necessário. Excluí-los não quebra uma instalação ou aplicativo Python funcional (assumindo que os arquivos-fonte .py estejam presentes).
Qual é a diferença entre .pyo e .pyc?
O .pyo foi compilado com -O (asserts removidos) ou -OO (docstrings também removidas); o .pyc foi compilado sem otimização. O formato binário é idêntico. O Python 3.5+ os mesclou em .opt-1.pyc / .opt-2.pyc.
Por que o Python 3.5+ não cria arquivos .pyo?
A PEP 488 (2015) eliminou o .pyo porque ter duas extensões para o mesmo formato binário era confuso. O nível de otimização agora é codificado no sufixo do nome do arquivo .pyc (.opt-1.pyc, .opt-2.pyc).
Como descompilo um .pyo para obter o código-fonte Python?
Use o decompyle3 (Python 3.7-3.8) ou uncompyle6 (Python 2-3.8): «pip install decompyle3 && decompyle3 arquivo.pyo». Ou faça o upload para decompiler.com para uma opção baseada na web. Os resultados podem ser imperfeitos, especialmente para arquivos compilados com -OO que não possuem docstrings.

Referências

1PEP 488 - Elimination of PYO filespeps.python.org
2Python Docs - compileall moduledocs.python.org

Continue explorando

em todo o banco de dados

Principais extensões desta semana

1.AQQAQQ Instant Messenger File
2.CRDOWNLOADChrome Partial Download File
3.PARTPartial Download File
4.BINCD/DVD Disc Image (BIN/CUE)
5.EXEWindows Executable (Portable Executable)
6.RPMSGRestricted Permission Message
7.MDMarkdown Document
8.DATProgram Data File (generic)
9.NOMEDIAAndroid No-Media Marker File
10.TXTPlain Text File

Extensões relacionadas

.DOStata Do-File
.MDMarkdown Document
.HEXIntel HEX File
.XSDXML Schema Definition
.MAPSource Map (JavaScript / CSS)
.CONFIGConfiguration File

Ferramentas de arquivo gratuitas

Um identificador de arquivos e conversor de imagens no navegador - tudo funciona no seu dispositivo.

Abrir a caixa de ferramentas

Navegar por extensões de arquivo A-Z