Python >> Python tutoriál >  >> Python

Co znamenají přípony souborů python, .pyc .pyd .pyo?

  1. .py :Toto je obvykle vstupní zdrojový kód, který jste napsali.
  2. .pyc :Toto je zkompilovaný bytecode. Pokud importujete modul, python vytvoří *.pyc soubor, který obsahuje bajtový kód, aby byl jeho pozdější import jednodušší (a rychlejší).
  3. .pyo :Toto byl formát souboru používaný před Pythonem 3.5 pro *.pyc soubory, které byly vytvořeny pomocí optimalizací (-O ) vlajka. (viz poznámka níže)
  4. .pyd :Toto je v podstatě soubor Windows dll. http://docs.python.org/faq/windows.html#is-a-pyd-file-the-same-as-a-dll

Také pro další diskusi o .pyc vs .pyo , podívejte se na:http://www.network-theory.co.uk/docs/pytut/CompiledPythonfiles.html (důležitou část jsem zkopíroval níže)

  • Když je interpret Pythonu vyvolán s příznakem -O, vygeneruje se optimalizovaný kód a uloží se do souborů „.pyo“. Optimalizátor momentálně moc nepomáhá; odstraní pouze tvrzení tvrzení. Při použití -O je optimalizován veškerý bajtový kód; Soubory .pyc jsou ignorovány a soubory .py jsou kompilovány do optimalizovaného bajtkódu.
  • Předání dvou příznaků -O do interpretru Pythonu (-OO) způsobí, že kompilátor bajtového kódu provede optimalizace, které mohou v některých vzácných případech vést k nesprávné funkci programů. Aktuálně pouze __doc__ řetězce jsou z bajtkódu odstraněny, což vede ke kompaktnějším souborům „.pyo“. Vzhledem k tomu, že některé programy se mohou spoléhat na jejich dostupnost, měli byste tuto možnost používat pouze tehdy, pokud víte, co děláte.
  • Program neběží rychleji, když je čten ze souboru .pyc nebo .pyo, než když je čten ze souboru .py; jediná věc, která je u souborů „.pyc“ nebo „.pyo“ rychlejší, je rychlost, s jakou se načítají.
  • Když je skript spuštěn zadáním jeho názvu na příkazovém řádku, bajtový kód skriptu se nikdy nezapíše do souboru „.pyc“ nebo „.pyo“. Čas spouštění skriptu lze tedy zkrátit přesunem většiny jeho kódu do modulu a použitím malého zaváděcího skriptu, který tento modul importuje. Je také možné pojmenovat soubor „.pyc“ nebo „.pyo“ přímo na příkazovém řádku.

Poznámka:

2015-09-15 vydání Pythonu 3.5 implementovalo PEP-488 a odstranilo .pyo files.To znamená, že .pyc soubory představují jak neoptimalizovaný, tak optimalizovaný bajtkód.


  • .py - Běžné písmo
  • .py3 - (málo používaný) skript Python3. Skripty Python3 obvykle končí „.py“, nikoli „.py3“, ale to jsem viděl několikrát
  • .pyc - zkompilovaný skript (Bytecode)
  • .pyo - optimalizovaný soubor pyc (od Pythonu 3.5 bude Python používat pouze pyc spíše než pyo a pyc)
  • .pyw - Python skript pro spuštění v režimu okna, bez konzole; spuštěn pomocí pythonw.exe
  • .pyx - Cython src bude převeden na C/C++
  • .pyd - Python skript vytvořený jako Windows DLL
  • .pxd - Cython skript, který je ekvivalentní hlavičce C/C++
  • .pxi - MyPy stub
  • .pyi - útržkový soubor (PEP 484)
  • .pyz - Archiv skriptů Python (PEP 441); toto je skript obsahující komprimované Python skripty (ZIP) v binární podobě za standardní hlavičkou Python skriptu
  • .pywz - Archiv skriptů Python pro MS-Windows (PEP 441); toto je skript obsahující komprimované Python skripty (ZIP) v binární podobě za standardní hlavičkou Python skriptu
  • .py[cod] – zástupný znak v „.gitignore“, což znamená, že soubor může být „.pyc“, „.pyo“ nebo „.pyd“.
  • .pth - konfigurační soubor cesty; jeho obsahem jsou další položky (jedna na řádek), které mají být přidány do sys.path . Viz site modul.

Větší seznam dalších přípon souborů Python (většinou vzácných a neoficiálních) lze nalézt na adrese http://dcjtech.info/topic/python-file-extensions/