Domanda

Che cosa significano queste estensioni di file python dire?

  • .pyc
  • .pyd
  • .pyo

Quali sono le differenze tra loro e come vengono generati da un file * .py?

È stato utile?

Soluzione

  1. .py:. Questo è normalmente il codice sorgente di input che hai scritto
  2. .pyc: Questo è il bytecode compilato. Se si importa un modulo python costruirà un file *.pyc che contiene il bytecode per rendere l'importazione di nuovo in seguito più facile (e più veloce).
  3. .pyo:. Questo è un file *.pyc che è stato creato, mentre le ottimizzazioni (-O) era
  4. .pyd: Questo è fondamentalmente il file DLL di Windows. http: // docs .python.org / faq / windows.html # is-a-PYD-file-the-same-as-a-dll

Anche per qualche ulteriore discussione sulla .pyc vs .pyo, dare un'occhiata a: http://www.network-theory.co.uk/docs/pytut/CompiledPythonfiles.html (ho copiato la parte importante di seguito)

  • Quando l'interprete Python viene invocato con l'opzione -O, codice ottimizzato viene generata e memorizzati in file .pyo. L'ottimizzatore attualmente non aiuta molto; si rimuove solo assert dichiarazioni. Quando viene usato -O, tutto bytecode viene ottimizzato; .pyc file vengono ignorati ei file .py vengono compilati in bytecode ottimizzato.
  • Passando un doppio flag -O all'interprete Python (-OO) farà sì che il compilatore bytecode eseguirà delle ottimizzazioni che potrebbero in alcuni rari casi provocare malfunzionamenti dei programmi. Attualmente solo le stringhe __doc__ vengono rimosse dal bytecode, con conseguente file più compatti .pyo. Dal momento che alcuni programmi possono contare su avere questi disponibili, si consiglia di utilizzare questa opzione solo se si sa cosa si sta facendo.
  • Un programma non viene eseguito più velocemente quando viene letto da un ‘.pyc’ ??o ‘.pyo’ di file rispetto a quando viene letto da un file ‘.py’; l'unica cosa che è più veloce su .pyo file ‘.pyc’ ??o è la velocità con cui vengono caricati.
  • Quando uno script viene eseguito dando il suo nome sulla riga di comando, il bytecode per lo script non viene mai scritto su un ‘.pyo’ file ‘.pyc’ ??o. Così, il tempo di avvio di uno script può essere ridotto spostando la maggior parte del suo codice in un modulo e avente un piccolo script di avvio che importi tale modulo. E 'anche possibile dare un nome un file ‘.pyc’ ??o ‘.pyo’ direttamente sulla riga di comando.

Nota:

Sul 2015/09/15 il Python 3.5 rilascio implementato i file eliminati .pyo PEP-488 e. Ciò significa che i file .pyc rappresentano sia bytecode non ottimizzata e ottimizzato.

Altri suggerimenti

  • .py - lo script regolare
  • .py3 - (raramente usato) di script python3. script python3 di solito terminano con ".py" non" .py3" , ma ho visto che un paio di volte
  • .pyc - script compilato (Bytecode)
  • .pyo - File pyc ottimizzato (A partire dal Python3.5, Python userà solo pyc piuttosto che Pyo e pyc)
  • .pyw - Python l'esecuzione di script in modalità finestra, senza una console; eseguito con pythonw.exe
  • .pyx - Cython src da convertire in C / C ++
  • .pyd - Script Python fatto come una DLL di Windows
  • .pxd - Cython script che è equivalente ad un C / C ++ di intestazione
  • .pxi - MyPy stub
  • .pyi - file di stub ( PEP 484 )
  • .pyz - Python archivio di script ( PEP 441 ); questo è uno script che contiene gli script Python compressi (ZIP) in forma binaria dopo l'intestazione script Python standard di
  • .pywz - Python archivio di script per MS Windows ( PEP 441 ); questo è uno script che contiene gli script Python compressi (ZIP) in forma binaria dopo l'intestazione script Python standard di
  • .py [cod] -. Notazione wildcard in ".gitignore" Ciò significa che il file possono essere ".pyc", ".pyo", o ".pyd"

Una più grande elenco di ulteriori Python di file-extensions (per lo più rari e non ufficiali) sono disponibili all'indirizzo http://dcjtech.info/topic/python-file-extensions/

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top