¿Qué es el formato de archivo PYD?
Los módulos dinámicos de Python se guardan como archivos .pyd en sistemas Windows. Un archivo .pyd es una DLL de Windows en formato binario PE (Portable Executable), que se distingue por exportar un punto de entrada PyInit_<modulename> al que el intérprete llama al importar. Los módulos .pyd contienen librerías que pueden ser utilizadas por otras aplicaciones de Python; las librerías dinámicas permiten una carga de código más rápida y modularidad en las aplicaciones. A diferencia de los archivos de bytecode .pyc y .pyo, los archivos .pyd son específicos de Windows; el formato .so cumple la misma función en Linux y macOS.
Los archivos .pyd contienen módulos de extensión de Python compilados. Los módulos contienen uno o más espacios de nombres, y los programas de Python que utilizan dichos módulos pueden hacer referencia a funciones en ellos. Los módulos pueden ser utilizados por múltiples aplicaciones de Python. Las compilaciones modernas incluyen una etiqueta ABI en el nombre del archivo -por ejemplo, cp312-win_amd64.pyd-, vinculando el archivo a una versión específica de CPython y arquitectura. La creación y distribución de módulos .pyd suele gestionarse mediante herramientas de compilación como Cython o setuptools.
Seguridad y protección
RIESGO: MEDIUMUn .pyd es código ejecutable nativo que Python ejecuta en el proceso sin aislamiento, por lo que un .pyd malicioso puede hacer cualquier cosa que tu programa Python pueda hacer. Los riesgos prácticos son: (1) un .pyd colocado en una carpeta que Python busca puede secuestrar una importación (secuestro de orden de búsqueda DLL/PYD), y (2) descargar archivos .pyd individuales de sitios aleatorios para «arreglar» un error es un vector de malware; siempre reinstala el paquete adecuado desde PyPI con pip en su lugar. Los archivos .pyd dentro de paquetes legítimos instalados por pip son normales. Trata cualquier .pyd inesperado y sin firmar en Descargas o en una carpeta de proyecto con sospecha y escanéalo.
Detalles del formato
en pocas palabrasProgramas que abren archivos PYD
Detalles técnicos
especificación profunda| Formato de contenedor | Windows PE (Portable Executable) - el mismo contenedor binario que los archivos `.dll` y `.exe` |
| Magic bytes | `MZ` (0x4D 0x5A) en el desplazamiento 0 (cabecera DOS); firma PE en el desplazamiento almacenado en 0x3C |
| Orden de bytes | Little-endian |
| Símbolo exportado clave | `PyInit_<modulename>` (Python 3) o `init<modulename>` (Python 2) - el sistema de importación de CPython llama a esta función para inicializar el módulo |
| Etiqueta de nombre de archivo ABI | Las compilaciones con etiqueta de versión usan el patrón `nombre.cpXYZ-win_amd64.pyd`; por ejemplo, `cp312-win_amd64` está destinado a CPython 3.12 en Windows de 64 bits |
| Plataforma | Solo Windows; el equivalente en Linux y macOS es un objeto compartido `.so` |
| Tipo MIME | `application/octet-stream`; también registrado como `application/vnd.microsoft.portable-executable` |
| Tamaño de archivo típico | 20 KB - varios MB; las librerías nativas grandes (por ejemplo, componentes de NumPy o SciPy) pueden alcanzar decenas de MB |
| Compresión | Ninguna - secciones PE en bruto, sin compresión integrada |
| Firma de código | Firma digital Authenticode (PE) opcional; de lo contrario, la integridad no está verificada (código máquina nativo) |
| Compatibilidad del intérprete | Debe coincidir exactamente con la versión de CPython, la arquitectura (32/64 bits) y la etiqueta ABI; un archivo no coincidente genera un `ImportError` al importar |
| Herramientas de compilación | Normalmente compilado desde código fuente C, C++ o Cython a través de `ext_modules` de setuptools, CMake/scikit-build o CFFI |
| Lanzado | Late 1990s - Python on Windows has loaded extension modules from .pyd (a renamed .dll) since the Python 1.x/2.0 era |
| Última versión | Tracks CPython; the per-version ABI tag (e.g. cp312-win_amd64) determines compatibility, current CPython 3.13 (2024) |
| Estándar abierto | Sí · libre de regalías |
| Especificación | docs.python.org |
Conversiones de PYD
Preguntas y respuestas de la comunidad
preguntado por usuariosAún no hay preguntas; sea el primero en preguntar sobre los archivos PYD.