Wat zijn de Python-bestandsextensions, .pyc .pyd .pyo staan ​​voor?

Wat betekenen deze extensies van Python-bestand?

  • .pyc
  • . Pydd
  • .pyo

Wat zijn de verschillen tussen hen en hoe worden ze gegenereerd uit een * .py-bestand?


Antwoord 1, Autoriteit 100%

  1. .py: Dit is normaal gesproken de ingangsbroncode die u hebt geschreven.
  2. .pyc: Dit is de gecompileerde bytecode. Als u een module importeert, baart Python een *.pyc-bestand dat de byTecode bevat om het later gemakkelijker (en sneller) te importeren.
  3. .pyo: Dit was een bestandsindeling dat vóór Python 3.5 is gebruikt voor *.pycBestanden die zijn gemaakt met optimalisaties (-O) vlag. (Zie de noot hieronder)
  4. .pyd: Dit is in feite een Windows DLL-bestand. http: // docs .python.org / faq / windows.html # is-a-pyd-bestand-de-hetzelfde-as-a-dll

Ook voor een aantal verdere discussie over .pycvs .pyo, bekijk een kijkje op: http://www.network-heory.co.uk/docs/pytut/compiledypypilehonfiles .html (ik heb het belangrijke onderdeel hieronder gekopieerd)

  • Wanneer de Python-tolk wordt aangeroepen met de Vlag, wordt geoptimaliseerde code gegenereerd en opgeslagen in ‘.pyo’-bestanden. De optimalisator helpt momenteel niet veel; Het verwijdert alleen ASSERT-verklaringen. Wanneer -O wordt gebruikt, is alle bytecode geoptimaliseerd; . PYC-bestanden worden genegeerd en. Py-bestanden worden gecompileerd met geoptimaliseerde bytecode.
  • Die twee———vlaggen doorgeven aan de Python-tolk (-oo) veroorzaakt de bypecodecompiler om optimalisaties uit te voeren die in sommige zeldzame gevallen kunnen resulteren in defecte programma’s. Momenteel alleen __doc__Snaren worden uit de bytecode verwijderd, wat resulteert in meer compacte ‘.pyo’-bestanden. Omdat sommige programma’s kunnen vertrouwen op het hebben van deze beschikbare, moet u deze optie alleen gebruiken als u weet wat u doet.
  • Een programma draait niet sneller wanneer deze wordt gelezen van een bestand ‘.pyc’ of ‘.pyo’-bestand dan wanneer het wordt gelezen van een’ .py’-bestand; Het enige dat sneller is over ‘.pyc’ of ‘.pyo’-bestanden is de snelheid waarmee ze zijn geladen.
  • Wanneer een script wordt uitgevoerd door de naam op de opdrachtregel te geven, wordt de bypecode voor het script nooit naar een bestand ‘PYC’ of ‘. PYO’ geschreven. Aldus kan de opstarttijd van een script worden verminderd door het grootste deel van zijn code naar een module te verplaatsen en een klein bootstrap-script te hebben dat die module importeert. Het is ook mogelijk om een ​​’.pyc’ of ‘.pyo’-bestand rechtstreeks op de opdrachtregel te noemen.

Opmerking:

op 2015-09-15 De Python 3.5 RELEASE geïmplementeerd PEP-488 en geëlimineerd .pyobestanden.
Dit betekent dat .pycbestanden zowel ongehoorde als geoptimaliseerde bytecode vertegenwoordigen.


Antwoord 2, Autoriteit 47%

  • . Py – gewoon script
  • .py3 – (zelden gebruikt) Python3-script. Python3-scripts eindigen meestal met “.py” niet “. Py3”, maar ik heb dat een paar keer gezien
  • .pyc – gecompileerd script (bytecode)
  • . Pyo – geoptimaliseerd PYC-bestand (vanaf Python3.5, Python zal alleen PYC gebruiken in plaats van Pyo en PYC)
  • .pyw– Python-script om in venstermodus te draaien, zonder console; uitgevoerd met pythonw.exe
  • .pyx– Cython src moet worden geconverteerd naar C/C++
  • .pyd– Python-script gemaakt als een Windows DLL
  • .pxd– Cython-script dat gelijk is aan een C/C++-header
  • .pxi– MyPy-stub
  • .pyi– Stub-bestand (PEP 484)
  • .pyz– Python-scriptarchief (PEP 441); dit is een script dat gecomprimeerde Python-scripts (ZIP) in binaire vorm bevat na de standaard Python-scriptkop
  • .pywz– Python-scriptarchief voor MS-Windows (PEP 441); dit is een script dat gecomprimeerde Python-scripts (ZIP) in binaire vorm bevat na de standaard Python-scriptkop
  • .py[cod]– jokertekens in “.gitignore” wat betekent dat het bestand “.pyc”, “.pyo” of “.pyd” kan zijn.
  • .pth– een padconfiguratiebestand; de inhoud ervan bestaat uit extra items (één per regel) die moeten worden toegevoegd aan sys.path. Zie de module site.

Een grotere lijst met aanvullende Python-bestandsextensies (meestal zeldzaam en niet-officieel) is te vinden op http://dcjtech.info/topic/python-file-extensions/

Other episodes