Varför konvertera PYC till PY?
Den främsta anledningen är återställning av källkod när den ursprungliga .py-filen raderats eller aldrig tillhandahållits tillsammans med bytekoden. En sekundär användning är granskning av program som distribueras som endast bytekod. Detta är dekompilering snarare än en ren formatkonvertering - en .pyc lagrar kompilerad bytekod och den ursprungliga källtexten bevaras inte inuti den.
Hur man konverterar PYC till PY
decompyle3 FREE
Installera med pip install decompyle3 och kör decompyle3 yourfile.pyc > recovered.py. Stöder Python 3.7-3.8.
uncompyle6 FREE
Installera med pip install uncompyle6 och kör uncompyle6 yourfile.pyc > recovered.py. Hanterar Python 2.x till och med 3.8.
pycdc OPEN-SOURCE
Ladda ner binärfilen från github.com/zrax/pycdc och kör pycdc yourfile.pyc > recovered.py. Bästa alternativet för Python 3.9 och nyare, även om noggrannheten på 3.11+ är begränsad.
Om dessa format
En .pyc-fil är kompilerad Python-bytecode som CPython cachar automatiskt för att påskynda uppstarten. Du behöver normalt inte öppna eller röra den. För att köra en, använd matchande…
Öppna detaljer för .PYC →En .py-fil är en Python-källkodsfil - vanlig text som innehåller ett program eller skript skrivet i språket Python. För att läsa koden, öppna den i valfri textredigerare. För att köra den,…
Öppna detaljer för .PY →Kvalitet & vad man bör tänka på
- Kommentarer är permanent borta - Python-bytekod lagrar dem inte; inget verktyg kan återställa dem från en
.pycoavsett Python-version. - Dekompileringsnoggrannheten sjunker kraftigt för Python 3.9 och senare; pycdc är det bästa försöket för nyare bytekod men kan producera ofullständiga resultat.
- Om
.pyc-filen var obfuskera kommer dekompileringen att misslyckas eller returnera tomma resultat;python3 -m dis yourfile.pyckan fortfarande visa enskilda bytekodinstruktioner som en reservlösning.
Vanliga frågor
Hur vet jag vilken Python-version som kompilerade .pyc-filen?
.pyc-filer i __pycache__ som module.cpython-311.pyc - numret indikerar den Python-version som kompilerade den.Överlever docstrings dekompilering?
Vad händer om dekompileraren ger felmeddelanden eller tomma resultat?
.pyc-filen kan vara obfuskera eller från en Python-version som inte stöds; prova ett annat verktyg eller använd python3 -m dis för att inspektera enskilda bytekodinstruktioner.