Respostas:
O Uncompyle6 funciona para o Python 3.xe 2.7 - opção recomendada, pois é a ferramenta mais recente, com o objetivo de unificar os garfos anteriores e se concentrar nos testes de unidade automatizados. A página do GitHub tem mais detalhes.
O Uncompyle2 mais antigo suporta apenas Python 2.7. Isso funcionou bem para mim há algum tempo para descompilar o bytecode .pyc em .py, enquanto o unpyclib travou com uma exceção.
Com todas essas ferramentas, você recebe seu código de volta, incluindo nomes de variáveis, mas sem os comentários.
Sim, você pode obtê-lo com o unpyclib
que pode ser encontrado no pypi .
$ pip install unpyclib
Do que você pode descompilar o arquivo .pyc
$ python -m unpyclib.application -Dq path/to/file.pyc
print __copyright
- por que está usando a versão Python 2.7 print
sem parênteses?
unpyclib
A primeira e última versão do @DavidChing foi em 2009 , é seguro dizer que é apenas um programa em Python 2.
Você pode tentar o Easy Python Decompiler . É baseado em Decompyle ++ e Uncompyle2. Ele suporta a descompilação das versões python 1.0-3.3
Nota: Eu sou o autor da ferramenta acima.
Decompyle ++ (pycdc) foi o único que funcionou para mim: https://github.com/zrax/pycdc
foi sugerido no Decompile Python 2.7 .pyc
Sim .
Eu uso o decompile uncompyle6 (até mesmo suporte ao Python 3.8.0):
uncompyle6 utils.cpython-38.pyc > utils.py
e o python de origem e o python descompilado comparando ficam assim:
para que você possa ver, QUASE o mesmo, o efeito de descompilação é MUITO BOM .
Sim, é possível.
Existe um perfeito descompilador Python de código aberto (.PYC), chamado Decompyle ++ https://github.com/zrax/pycdc/
O Decompyle ++ visa converter o código de bytes Python compilado de volta em código-fonte Python válido e legível por humanos. Embora outros projetos tenham conseguido isso com sucesso variado, o Decompyle ++ é único, pois procura oferecer suporte a código de bytes de qualquer versão do Python.
Instalar usando o pip install pycompyle6
pycompyle6 filename.pyc