Přeskočit na obsah

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

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.

  1. Zkompilujte jeden zdrojový soubor do standardního umístění cache:
    python -m py_compile script.py
  2. Zkompilujte všechny soubory Pythonu v adresáři včetně podadresářů:
    python -m compileall project_folder
  3. Uložte vygenerovaný soubor PYC vedle zdrojového souboru místo do __pycache__:
    python -m compileall -b script.py
  4. 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.

Srovnání souborových formátů PY a PYC
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

Č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í.

Podobné .py konverze

Reverzní konverze

Konverze do .pyc
z jiných formátů

Sdílejte na sociálních sítích:

Soubor už byl stažen

Tento soubor už byl stažen. Kvůli ochraně soukromí jsme ho hned po stažení smazali ze serveru, takže ho nejde stáhnout znovu. Pokud ho potřebujete ještě jednou, převeďte soubor znovu.