Převod souboru PYC do PY
Vysvětluje, proč jsou soubory .pyc obtížně obnovitelné a které nástroje mohou pomoci
Jak převést soubor pyc do formátu py
- Programování
- Dosud nehodnoceno.
Co jsou soubory .pyc a .py
.py soubory jsou zdrojové soubory Pythonu, které čtete, upravujete a spouštíte. .pyc soubory jsou zkompilované soubory Python bytecode, které Python umí spouštět rychleji poté, co byl zdroj zkompilován.
Lze soubor .pyc převést zpět na .py?
Ne dokonale. Soubor .pyc neobsahuje plný původní zdrojový kód. Ve mnoha případech jej lze dekompilovat do podobného kódu v Pythonu, ale výsledek se může lišit od originálu a nemusí být plně čitelný ani spustitelný bez oprav.
Co se ztrácí v souborech .pyc
Když Python kompiluje zdrojový kód, uchovává bytecode a některá metadata, ale nezachovává komentáře, původní formátování a často ani všechny názvy proměnných nebo strukturální detaily přesně tak, jak jsou zapsané ve zdrojovém kódu.
Kdy může dekompilace fungovat
Dekompilátory někdy dokážou z .pyc souborů vytvořených podporovanými verzemi Pythonu získat kód zpět. Úspěch závisí na verzi Pythonu, integritě souboru a na tom, zda byl bytecode zatemněn (obfuscated) nebo upraven.
Nástroje, které můžete zkusit
Pro kontrolu nebo obnovu se běžně používají nástroje jako uncompyle6 a decompyle3. Použijte nástroj, který podporuje verzi Pythonu, jež vytvořila soubor .pyc. Novější verze bytecode nemusí být podporovány staršími dekompilátory.
Příklad příkazu
Chcete-li zkusit dekompilovat soubor pomocí podporovaného nástroje, spusťte:
uncompyle6 example.pyc > example.py
Poté výstup pečlivě zkontrolujte a otestujte, protože dekompilovaný kód může vyžadovat ruční opravy.
Důležitá omezení
Soubory .pyc nejsou spolehlivou zálohou zdrojového kódu. Jsou určené ke spouštění, ne k obnově zdroje. Pokud byl soubor vygenerován jinou verzí Pythonu, je poškozený nebo byl chráněn/zatemněn, dekompilace může selhat nebo vrátit nesprávné výsledky.
Nejlepší způsob, jak získat zdroj zpět
Pokud potřebujete původní kód, hledejte .py soubor v systému pro správu verzí, v zálohách, v archivu nasazení nebo u původního vývojáře. Pokud žádný zdroj neexistuje, dekompilace je pouze metoda obnovy na poslední chvíli.
PYC vs PY: srovnání formátů
Jak si formáty PYC a PY stojí v nejdůležitějších vlastnostech pro tento převod.
| Vlastnost | .PYC Python compiled bytecode | .PY Python source file |
|---|---|---|
| Čitelný jako prostý text | Ne | Ano |
| Formátování textu | Žádné | Základní |
| Obrázky | Ne | Ne |
| Další úpravy | Nelze přímo upravovat | Snadné |
| Otevírá se ve webovém prohlížeči | Ne | Ne |
| Typická velikost souboru | Velmi malé | Malé |
| Otevřený standard | Ano | Ano |
| Nejvhodnější pro | Vkládání do aplikací | Úpravy a postprodukce |
| Zavedeno | 1991 | 1991 |
| Vývojář | Python Software Foundation | Python Software Foundation |
| MIME typ | — | text/x-python |