Pourquoi convertir PYC en PY ?
La raison principale est la récupération du code source lorsque le fichier .py original a été supprimé ou n'a jamais été fourni avec le bytecode. Une utilisation secondaire est l'audit de programmes distribués uniquement sous forme de bytecode. Il s'agit d'une décompilation plutôt que d'une conversion de format classique - un .pyc stocke du bytecode compilé et le texte source original n'y est pas conservé.
Comment convertir PYC en PY
decompyle3 FREE
Installez avec pip install decompyle3 et lancez decompyle3 votre_fichier.pyc > recupere.py. Supporte Python 3.7-3.8.
uncompyle6 FREE
Installez avec pip install uncompyle6 et lancez uncompyle6 votre_fichier.pyc > recupere.py. Gère Python 2.x jusqu'à 3.8.
pycdc OPEN-SOURCE
Téléchargez le binaire depuis github.com/zrax/pycdc et lancez pycdc votre_fichier.pyc > recupere.py. Meilleure option pour Python 3.9 et versions ultérieures, bien que la précision sur 3.11+ soit limitée.
À propos de ces formats
Un fichier .pyc est du bytecode Python compilé que CPython met automatiquement en cache pour accélérer le démarrage. Vous n'avez normalement pas besoin de l'ouvrir ou de le modifier. Pour…
Ouvrir les détails de .PYC →Un fichier .py est un fichier de code source Python - du texte brut contenant un programme ou un script écrit dans le langage Python. Pour lire le code, ouvrez-le dans n'importe quel…
Ouvrir les détails de .PY →Qualité et points de vigilance
- Les commentaires ont disparu définitivement - le bytecode Python ne les stocke pas ; aucun outil ne peut les récupérer à partir d'un
.pyc, quelle que soit la version de Python. - La précision de la décompilation chute brusquement pour Python 3.9 et versions supérieures ; pycdc est la meilleure option pour le bytecode récent mais peut produire un résultat incomplet.
- Si le
.pyca été obfusqué, la décompilation échouera ou renverra un résultat vide ;python3 -m dis votre_fichier.pycpeut toujours afficher les instructions de bytecode individuelles en dernier recours.
Foire aux questions
Comment savoir quelle version de Python a compilé le .pyc ?
.pyc dans __pycache__ sont nommés comme module.cpython-311.pyc - le nombre indique la version de Python qui l'a compilé.Les docstrings survivent-ils à la décompilation ?
Que faire si le décompilateur produit des erreurs ou un résultat vide ?
.pyc est peut-être obfusqué ou provient d'une version de Python non supportée ; essayez un autre outil ou utilisez python3 -m dis pour inspecter les instructions de bytecode individuelles.