.PYC

Archivo PYC

Compiled Python Bytecode File
Hacer una pregunta
RESPUESTA RÁPIDA

Un archivo .pyc es bytecode de Python compilado que CPython almacena en caché automáticamente para acelerar el inicio. Normalmente no es necesario abrirlo ni tocarlo. Para ejecutar uno, use la versión de Python correspondiente. Para recuperar el código fuente de un .pyc, use un descompilador como decompyle3 o pycdc; los resultados son aproximados y pueden fallar en versiones más recientes de Python.

Desarrollador: Python Software Foundation (CPython) Categoría: Archivos de desarrollo Estándar abierto MIME: application/x-python-code
SE ABRE EN Windows macOS Linux
Relacionado: .DO · .MD · .HEX · .XSD

En esta página

19k+ extensiones indexadas
Última revisión Jun 30, 2026

¿No está seguro de qué es su archivo?

Suelte cualquier archivo en nuestro identificador - leemos solo los primeros bytes para nombrar el formato.

Identificar un archivo

¿Qué es el formato de archivo PYC?

Los archivos .pyc son utilizados por el lenguaje de programación Python. Un archivo .pyc es un ejecutable que contiene bytecode compilado para un programa escrito en fuente de Python. El bytecode es un conjunto de instrucciones para que el intérprete ejecute el programa sin volver a analizar el código fuente original en cada lanzamiento, lo que acelera el tiempo de importación e inicio.

Los archivos .pyc van acompañados de sus archivos fuente .py relacionados. Python compila un archivo .py y guarda el resultado en un archivo .pyc, que luego puede usarse para ejecutar el programa directamente. Desde Python 3.2, estos archivos de caché se colocan en un subdirectorio __pycache__ junto al código fuente, con la versión del intérprete incrustada en el nombre del archivo (por ejemplo, script.cpython-312.pyc).

Cada archivo .pyc comienza con un encabezado de 16 bytes. Los dos primeros bytes son un número mágico específico de la versión (cambia con cada lanzamiento de CPython), seguidos de 0x0D 0x0A (CR LF) en los bytes 2-3. Los bytes restantes del encabezado contienen una marca de tiempo y el tamaño del archivo fuente (por defecto) o un hash del archivo fuente para compilaciones deterministas y reproducibles, un esquema introducido por PEP 552 en Python 3.7. Después del encabezado, el archivo contiene un objeto de código serializado (marshalled) que puede inspeccionarse con el módulo integrado dis de Python.

El bytecode .pyc está vinculado a una versión específica de CPython: un archivo compilado bajo Python 3.11 no se cargará bajo Python 3.12. El antiguo formato de bytecode optimizado .pyo se eliminó en Python 3.5; las compilaciones optimizadas ahora producen archivos .opt-1.pyc o .opt-2.pyc en su lugar. Para descompilar un .pyc de nuevo a código fuente legible, se suelen utilizar herramientas como uncompyle6, decompyle3 y pycdc (Decompyle++), aunque la compatibilidad varía según la versión de Python. En Windows, los módulos de extensión compilados utilizan el formato relacionado .pyd.

Seguridad y protección

RIESGO: MEDIUM

Un .pyc es bytecode que el intérprete de Python EJECUTA, por lo que un .pyc malicioso puede ejecutar código arbitrario al igual que un script; nunca ejecute un .pyc de una fuente no confiable. También es una técnica común para ocultar malware (enviando solo el bytecode compilado). Por el contrario, distribuir su propio código como .pyc ofrece una protección muy débil: se puede descompilar y, como mínimo, desensamblar con el módulo «dis» incluido, por lo que NO es una forma real de mantener el código fuente en secreto. Eliminar los archivos __pycache__ / .pyc es seguro: Python los regenera automáticamente a partir de los fuentes .py.

Detalles del formato

en pocas palabras
NOMBRE COMPLETOCompiled Python Bytecode File
DESARROLLADORPython Software Foundation (CPython)desde Early CPython (1990s); current header layout (PEP 552 hash-based, deterministic) since Python 3.7, 2018
TIPO MIMEapplication/x-python-code
TIPOBytecode binario de CPython (objeto de código serializado con encabezado de versión)
ESTÁNDARAbierto · libre de regalías
RELACIONADO.do.md.hex.xsd

Programas que abren archivos PYC

Windows3 apps
Python (run it) Código abierto Ejecútelo con la versión de Python CORRESPONDIENTE: «python modulo.pyc». El intérprete ejecuta el bytecode directamente, pero la versión debe coincidir con la que lo compiló.
decompyle3 / uncompyle6 (decompile) Código abierto Recuperar fuente: «pip install decompyle3» y luego «decompyle3 archivo.pyc > archivo.py». Funciona mejor para Python hasta ~3.8; se pierden comentarios y formato.
pycdc (Decompyle++) Código abierto Para versiones más nuevas de Python (3.9+) donde uncompyle6 falla: compile pycdc y ejecute «pycdc archivo.pyc». Es un esfuerzo de aproximación; la precisión en las últimas versiones es limitada.
macOS2 apps
Python (run it) Código abierto Ejecútelo con la versión de Python CORRESPONDIENTE: «python modulo.pyc». El intérprete ejecuta el bytecode directamente, pero la versión debe coincidir con la que lo compiló.
uncompyle6 / decompyle3 (decompile) Código abierto Instale a través de pip y descompile a .py; se aplican las mismas advertencias de versión que en Windows.
Linux2 apps
Python (run it) Código abierto Ejecútelo con la versión de Python CORRESPONDIENTE: «python modulo.pyc». El intérprete ejecuta el bytecode directamente, pero la versión debe coincidir con la que lo compiló.
decompyle3 / pycdc (decompile) Código abierto Instale decompyle3 vía pip (o compile pycdc para 3.9+) y luego descompile el .pyc de nuevo a .py.

Detalles técnicos

especificación profunda
DesarrolladorPython Software Foundation (CPython)
Tipo MIMEapplication/x-python-code
Estructura del archivoBinario - encabezado con versión de 16 bytes seguido de un objeto de código Python serializado
Número mágicoBytes 0-1: valor de 2 bytes específico de la versión (difiere según el lanzamiento de CPython); bytes 2-3: siempre 0x0D 0x0A (CR LF)
Diseño del encabezadoMagic de 32 bits, banderas de campo de bits de 32 bits, luego mtime de 32 bits + tamaño de fuente de 32 bits (modo timestamp) o un hash de fuente de 32 bits (modo hash PEP 552)
Directorio de cachéAlmacenado en __pycache__/ desde Python 3.2; el nombre del archivo codifica la versión del intérprete, p. ej. script.cpython-312.pyc
Compatibilidad de versionesCada versión de CPython escribe un número mágico único; un .pyc de Python 3.11 no se cargará en 3.12 y viceversa
Portabilidad de plataformaIndependiente de la plataforma dentro de la misma versión de CPython: el mismo .pyc se ejecuta en Windows, macOS y Linux con un intérprete coincidente
Variantes optimizadaspython -O y python -OO producen .opt-1.pyc y .opt-2.pyc (eliminan aserciones y docstrings); la extensión .pyo se retiró en Python 3.5
Control de autogeneraciónCPython escribe archivos .pyc automáticamente al importar; se suprime con la bandera -B o la variable de entorno PYTHONDONTWRITEBYTECODE=1
Desensamblado / descompilaciónEl módulo integrado dis de Python desensambla el bytecode; las herramientas de terceros uncompyle6, decompyle3 y pycdc (Decompyle++) intentan la reconstrucción del código fuente
Formato de serialización internaLos objetos de código se serializan con el módulo marshal, un formato binario compacto distinto de pickle, que no forma parte de la API pública estable
Compilaciones basadas en hashPEP 552 (Python 3.7+) introdujo archivos .pyc basados en hash: el encabezado almacena un hash del archivo fuente en lugar de mtime para compilaciones reproducibles
LanzadoEarly CPython (1990s); current header layout (PEP 552 hash-based, deterministic) since Python 3.7, 2018
Estándar abiertoSí · libre de regalías
Especificacióndocs.python.org

Conversiones de PYC

Preguntas y respuestas de la comunidad

preguntado por usuarios
Hacer una pregunta rápida
Obtenga ayuda de personas que trabajan con archivos PYC. Sea específico: incluya su sistema y la versión del software.
No se necesita cuenta · respuestas generalmente en un día

Aún no hay preguntas; sea el primero en preguntar sobre los archivos PYC.

Preguntas frecuentes

¿Qué es un archivo .pyc y puedo eliminarlo?
Es bytecode de Python compilado que Python almacena en caché para iniciarse más rápido. Puede eliminar de forma segura los archivos .pyc y las carpetas __pycache__; Python los vuelve a crear a partir del código fuente .py la próxima vez que se ejecute.
¿Cómo convierto un .pyc de nuevo a código fuente .py?
Descompilándolo. Use decompyle3 o uncompyle6 para Python hasta la versión 3.8 («decompyle3 archivo.pyc > archivo.py»), o pycdc para Python 3.9+. Los resultados son aproximados (se pierden los comentarios y el formato exacto) y pueden fallar en las versiones más recientes de Python.
¿Por qué no se ejecuta mi archivo .pyc?
Casi siempre se debe a una discrepancia de versión: un .pyc está vinculado a la versión exacta de CPython que lo creó (el número mágico). Ejecútelo con esa misma versión o consiga el .py original y deje que su Python lo vuelva a compilar.
¿Enviar archivos .pyc en lugar de .py oculta mi código fuente?
Solo débilmente. Un .pyc se puede descompilar a Python legible y siempre se puede desensamblar con el módulo integrado «dis». Disuade la visualización casual, pero no es una protección real.
¿Qué hay dentro de una carpeta __pycache__?
Archivos .pyc almacenados en caché con nombres como modulo.cpython-311.pyc, uno por cada módulo importado, etiquetados con la versión de Python. Es una caché de rendimiento automática y es seguro eliminarla.
¿Puedo ejecutar un .pyc sin el archivo .py?
Sí, si tiene la versión de Python correspondiente: «python modulo.pyc». El .py solo es necesario para editar o para que Python regenere la caché.

Referencias

1Python docs - dis (bytecode disassembler)docs.python.org
2PEP 552 - Deterministic pycspeps.python.org

Siga explorando

en toda la base de datos

Extensiones principales esta semana

1.AQQAQQ Instant Messenger File
2.CRDOWNLOADChrome Partial Download File
3.PARTPartial Download File
4.BINCD/DVD Disc Image (BIN/CUE)
5.RPMSGRestricted Permission Message
6.MDMarkdown Document
7.NOMEDIAAndroid No-Media Marker File
8.PRO6XProPresenter 6 Bundle File
9.EXEWindows Executable (Portable Executable)
10.PRDXSoftMaker Presentations Document

Extensiones relacionadas

.DOStata Do-File
.MDMarkdown Document
.HEXIntel HEX File
.XSDXML Schema Definition
.MAPSource Map (JavaScript / CSS)
.CONFIGConfiguration File

Herramientas de archivo gratuitas

Un identificador de archivos y convertidor de imágenes en el navegador - todo se ejecuta en su dispositivo.

Abrir la caja de herramientas

Explorar extensiones de archivo A-Z