Respuestas:
Uncompyle6 funciona para Python 3.xy 2.7: opción recomendada, ya que es la herramienta más reciente, con el objetivo de unificar las horquillas anteriores y centrarse en las pruebas unitarias automatizadas. La página de GitHub tiene más detalles.
El Uncompyle2 anterior solo es compatible con Python 2.7. Esto funcionó bien para mí hace algún tiempo descompilar el bytecode .pyc en .py, mientras que unpyclib se bloqueó con una excepción.
Con todas estas herramientas, recupera su código, incluidos los nombres de variables, pero sin los comentarios.
Sí, puede obtenerlo con unpyclib
eso se puede encontrar en pypi .
$ pip install unpyclib
Entonces puedes descompilar tu archivo .pyc
$ python -m unpyclib.application -Dq path/to/file.pyc
print __copyright
: ¿por qué está usando la versión Python 2.7 print
sin paréntesis?
unpyclib
El primer y último lanzamiento de @DavidChing fue en 2009 , es seguro decir que es un programa exclusivo de Python 2.
Puedes probar Easy Python Decompiler . Está basado en Decompyle ++ y Uncompyle2. Es compatible con la descomposición de las versiones de Python 1.0-3.3
Nota: Soy el autor de la herramienta anterior.
Decompyle ++ (pycdc) fue el único que funcionó para mí: https://github.com/zrax/pycdc
fue sugerido en Decompile Python 2.7 .pyc
Sí .
Yo uso uncompyle6 descompilar (incluso soporta el nuevo Python 3.8.0):
uncompyle6 utils.cpython-38.pyc > utils.py
y la comparación de Python de origen y Python descompilado se ve así:
para que pueda ver, casi lo mismo, el efecto de descompilación es MUY BUENO .
Sí, es posible.
Hay un descompilador perfecto de código abierto Python (.PYC), llamado Decompyle ++ https://github.com/zrax/pycdc/
Decompyle ++ tiene como objetivo traducir el código de byte compilado de Python nuevamente en un código fuente Python válido y legible por humanos. Mientras que otros proyectos han logrado esto con un éxito variado, Decompyle ++ es único en el sentido de que busca admitir el código de bytes de cualquier versión de Python.
Instalar usando pip install pycompyle6
pycompyle6 filename.pyc