lenguaje - ¿Qué representan las extensiones de archivo python,.pyc.pyd.pyo?
python wikipedia (2)
¿Qué significan estas extensiones de archivo de Python?
- .pyc
- .pyd
- .pyo
¿Cuáles son las diferencias entre ellos y cómo se generan a partir de un archivo * .py?
-
.py
: este es normalmente el código fuente de entrada que has escrito. -
.pyc
: Este es el bytecode compilado. Si importa un módulo, Python creará un archivo*.pyc
que contiene el código de bytes para que la importación sea más fácil (y más rápida). -
.pyo
: este es un archivo*.pyc
que se creó mientras las optimizaciones (-O
) estaban.pyo
. -
.pyd
: Esto es básicamente un archivo dll de Windows. http://docs.python.org/faq/windows.html#is-a-pyd-file-the-same-as-a-dll
También para más información sobre .pyo
vs .pyo
, eche un vistazo a: http://www.network-theory.co.uk/docs/pytut/CompiledPythonfiles.html (He copiado la parte importante a continuación)
- Cuando se invoca el intérprete de Python con el indicador -O, el código optimizado se genera y almacena en los archivos ''.pyo''. El optimizador actualmente no ayuda mucho; sólo elimina las afirmaciones afirmativas. Cuando se usa -O, se optimiza todo el código de bytes; Los archivos .pyc se ignoran y los archivos .py se compilan para obtener un código de bytes optimizado.
- Al pasar dos indicadores -O al intérprete de Python (-OO), el compilador del código de bytes realizará optimizaciones que, en casos excepcionales, podrían dar como resultado un funcionamiento incorrecto de los programas. Actualmente solo se
__doc__
cadenas__doc__
, lo que da como resultado archivos ''.pyo'' más compactos. Dado que algunos programas pueden depender de tener estos disponibles, solo debe usar esta opción si sabe lo que está haciendo.- Un programa no se ejecuta más rápido cuando se lee de un archivo ''.pyc'' o ''.pyo'' que cuando se lee de un archivo ''.py''; lo único que es más rápido acerca de los archivos ''.pyc'' o ''.pyo'' es la velocidad con la que se cargan.
- Cuando se ejecuta un script dando su nombre en la línea de comando, el código de bytes del script nunca se escribe en un archivo ''.pyc'' o ''.pyo''. Por lo tanto, el tiempo de inicio de una secuencia de comandos puede reducirse moviendo la mayor parte de su código a un módulo y teniendo una pequeña secuencia de comandos de arranque que importe ese módulo. También es posible nombrar un archivo ''.pyc'' o ''.pyo'' directamente en la línea de comandos.
- .py - script regular
- .py3 - (raramente usado) script de Python3. Los scripts de Python3 usualmente terminan con ".py" no ".py3", pero lo he visto varias veces
- .pyc - script compilado (Bytecode)
- .pyo : archivo pyc optimizado (a partir de Python3.5, Python solo usará pyc en lugar de pyo y pyc)
- .pyw : secuencia de comandos de Python para ejecutar en modo de ventana, sin una consola; ejecutado con pythonw.exe
- .pyx - Cython src se convertirá a C / C ++
- .pyd - Script Python hecho como una DLL de Windows
- .pxd - Script de Cython que es equivalente a un encabezado C / C ++
- .pxi - talón de MyPy
- .pyi - archivo de código auxiliar ( PEP 484 )
- .pyz - Archivo de script Python ( PEP 441 ); este es un script que contiene scripts de Python comprimidos (ZIP) en formato binario después del encabezado del script de Python estándar
- .pywz - Archivo de script de Python para MS-Windows ( PEP 441 ); este es un script que contiene scripts de Python comprimidos (ZIP) en formato binario después del encabezado del script de Python estándar
- .py [cod] : notación de comodín en ".gitignore" que significa que el archivo puede ser ".pyc", ".pyo" o ".pyd".
Puede encontrar una lista más extensa de extensiones de archivo de Python (en su mayoría raras y no oficiales) en http://dcjtech.info/topic/python-file-extensions/