¿Por qué convertir PYC a PY?
La razón principal es la recuperación del código fuente cuando el .py original se borró o nunca se proporcionó junto al bytecode. Un uso secundario es la auditoría de programas distribuidos solo como bytecode. Se trata de una descompilación más que de una conversión de formato limpia: un .pyc almacena bytecode compilado y el texto fuente original no se conserva en su interior.
Cómo convertir PYC a PY
decompyle3 FREE
Instálelo con pip install decompyle3 y ejecute decompyle3 suarchivo.pyc > recuperado.py. Soporta Python 3.7-3.8.
uncompyle6 FREE
Instálelo con pip install uncompyle6 y ejecute uncompyle6 suarchivo.pyc > recuperado.py. Admite desde Python 2.x hasta 3.8.
pycdc OPEN-SOURCE
Descargue el binario desde github.com/zrax/pycdc y ejecute pycdc suarchivo.pyc > recuperado.py. Es la mejor opción para Python 3.9 y posteriores, aunque la precisión en 3.11+ es limitada.
Acerca de estos formatos
Un archivo .pyc es bytecode de Python compilado que CPython almacena en caché automáticamente para acelerar el inicio. Normalmente no es necesario abrirlo ni tocarlo. Para ejecutar uno, use…
Abrir detalles de .PYC →Un archivo .py es un archivo de código fuente de Python: texto plano que contiene un programa o script escrito en el lenguaje Python. Para leer el código, ábralo en cualquier editor de…
Abrir detalles de .PY →Calidad y qué observar
- Los comentarios han desaparecido permanentemente: el bytecode de Python no los almacena; ninguna herramienta puede recuperarlos de un
.pycindependientemente de la versión de Python. - La precisión de la descompilación cae drásticamente para Python 3.9 y superiores; pycdc es la mejor opción disponible para el bytecode más reciente, pero puede producir resultados incompletos.
- Si el
.pycfue ofuscado, la descompilación fallará o devolverá un resultado vacío;python3 -m dis suarchivo.pyctodavía puede mostrar las instrucciones individuales de bytecode como último recurso.
Preguntas frecuentes
¿Cómo sé qué versión de Python compiló el .pyc?
.pyc en __pycache__ se nombran como module.cpython-311.pyc; el número indica la versión de Python que lo compiló.¿Sobreviven los docstrings a la descompilación?
¿Qué pasa si el descompilador produce errores o un resultado vacío?
.pyc esté ofuscado o provenga de una versión de Python no compatible; pruebe con una herramienta diferente o use python3 -m dis para inspeccionar las instrucciones de bytecode individuales.