Převod souboru PY do PYC
Vytvořte CPython bytecode ze zdrojového kódu PY pomocí správného lokálního interpreteru a verze.
Převádějte soubory PY online
Pro převod PY do PYC zatím vlastní online konvertor nemáme, ale soubory PY můžete online převést do těchto formátů:
Chcete převádět PY na PYC?
Dejte nám vědět. Podle zájmu vybíráme, které převody přidáme jako další.
Jak převést soubor py do formátu pyc
- Programování
- Dosud nehodnoceno.
Nasazovací prostředí může vyžadovat bytecode CPythonu namísto zdrojového souboru nebo může vývojář chtít vygenerovat importní cache pro projekt. Vytvoření souboru .pyc je lokální krok kompilace prováděný interpretem Pythonu, který jej bude spouštět, nikoli obecný převod dokumentu.
Co je formát PY
.py je prostý textový zdrojový soubor Pythonu obsahující příkazy, funkce, třídy, importy, komentáře a další programový kód. Vývojáři vytvářejí a upravují soubory PY ve Visual Studio Code, PyCharm, IDLE nebo v libovolném textovém editoru. CPython před spuštěním analyzuje zdrojový kód a zkompiluje jej do bytecode v paměti; importované moduly mohou mít tento bytecode také zapsaný do souboru cache PYC.
Co je formát PYC
.pyc je binární soubor bytecode vytvořený pomocí CPythonu. Jeho hlavička obsahuje identifikátor bytecode interpretu a informace o platnosti cache; zbývající část obsahuje serializovaný Python bytecode. CPython obvykle ukládá vygenerované soubory do __pycache__ a používá názvy jako module.cpython-312.pyc.
Cache může zabránit opětovné kompilaci nezměněného importovaného modulu, ale nejde o spustitelnou náhradu celé aplikace a neposkytuje bezpečné skrytí zdrojového kódu. Bytecode lze kontrolovat nebo dekompilovat a soubor PYC zůstává vázán na konkrétní implementaci a verzi Pythonu.
Jak vytvořit soubor PYC
Nainstalujte oficiální verzi CPythonu požadovanou cílovým systémem a poté otevřete terminál v adresáři obsahujícím zdrojový soubor. Příkaz interpretu python se v některých systémech může jmenovat python3.
- Zkompilujte jeden zdrojový soubor do standardního umístění cache:
python -m py_compile script.py - Zkompilujte všechny soubory Pythonu v adresáři včetně podadresářů:
python -m compileall project_folder - Uložte vygenerovaný soubor PYC vedle zdrojového souboru místo do
__pycache__:python -m compileall -b script.py - Zadejte přesný název výstupního souboru pomocí standardní knihovny:
python -c "import py_compile; py_compile.compile('script.py', cfile='output/script.pyc')"
Nadřazený adresář pro cestu cfile již musí existovat. Pokud je název nainstalovaného interpretu python3, použijte stejné příkazy s python3. Přímé spuštění skriptu jej obvykle zkompiluje v paměti; soubor cache běžně vytvoří až import modulu. IDE s podporou Pythonu používají nakonfigurovaný interpreter a mohou vytvářet soubory PYC při spouštění nebo importování modulů projektu.
Používejte lokální CPython namísto online převodníku. Webová služba by obdržela zdrojový kód a mohla by jej zkompilovat nesprávnou verzí Pythonu; neexistuje žádná univerzální online konverzní služba, která by byla pro běžnou práci s převodem PY na PYC vhodnější. IDE nebo desktopový terminál poskytuje stejnou kompilaci prostřednictvím vybraného lokálního interpretu.
Kompatibilita a omezení
Soubor PYC vytvořený pomocí CPythonu 3.12 obecně nelze použít s CPythonem 3.11, Pythonem 2 ani s jinou implementací Pythonu. Kompilujte pomocí stejné hlavní a vedlejší verze, jaká se používá v nasazovacím prostředí, a pokud možno i pomocí stejné implementace. CPython může cache ignorovat a znovu vygenerovat, pokud údaje o časovém razítku a velikosti nebo hashové údaje o platnosti již neodpovídají zdrojovému souboru.
Kompilace odhalí syntaktické chyby, ale netestuje chování programu. Závislosti za běhu, cesty pro import, funkce operačního systému, konfigurace a chyby za běhu zůstávají nevyřešeny. Importované balíčky musí být stále nainstalované, pokud není aplikace zabalena samostatně. Pro distribuci použijte podle potřeby wheel, virtuální prostředí, spustitelný balíček nebo kontejner; izolované soubory PYC slouží především jako cache interpretu nebo artefakty nasazení specifické pro danou implementaci.
PY vs PYC: srovnání formátů
Jak si formáty PY a PYC stojí v nejdůležitějších vlastnostech pro tento převod.
| Vlastnost | .PY Python source file | .PYC Python compiled bytecode |
|---|---|---|
| Čitelný jako prostý text | Ano | Ne |
| Formátování textu | Základní | Žádné |
| Obrázky | Ne | Ne |
| Další úpravy | Snadné | Nelze přímo upravovat |
| Otevírá se ve webovém prohlížeči | Ne | Ne |
| Typická velikost souboru | Malé | Velmi malé |
| Otevřený standard | Ano | Ano |
| Nejvhodnější pro | Úpravy a postprodukce | Vkládání do aplikací |
| Zavedeno | 1991 | 1991 |
| Vývojář | Python Software Foundation | Python Software Foundation |
| MIME typ | text/x-python | — |
Informace o příponách a typech souborů poskytuje File-Extensions.org
Navrhovaný software pro převod py do pyc
Často kladené otázky
Odstraní převod souboru .py na .pyc můj zdrojový kód v Pythonu?
Ano, soubor .pyc obsahuje zkompilovaný bytecode namísto původního čitelného zdrojového kódu. Je určen ke spuštění a není plně upravitelnou náhradou souboru .py, ačkoli některý bytecode lze zpětně analyzovat.
Může jakákoli verze Pythonu spustit soubor .pyc vytvořený ze souboru .py?
Ne, soubor .pyc obvykle vyžaduje stejnou nebo kompatibilní verzi a implementaci CPythonu, která jej vytvořila. Nesoulad verzí běžně způsobí chybu „bad magic number“ nebo jinou chybu při importu.
Proč se můj soubor .pyc nespustí, když se ho pokusím spustit samostatně?
Soubor .pyc je běžně zkompilován jako modul a může záviset na svém balíčku, importech, pracovním adresáři a běhovém prostředí. Může také selhat, pokud zdrojový kód obsahoval syntaktické chyby nebo chyby závislostí, případně pokud byl zkompilován s nekompatibilním nastavením interpretu.
Lze převést soubor .pyc zpět na původní soubor .py?
Ne, kompilace .py na .pyc není bezztrátový převod tam a zpět. Některou strukturu kódu lze z bytecode obnovit, ale komentáře, formátování a někdy i přesné konstrukce zdrojového kódu se ztratí.