Saltar al contenido

Convertir PY a PYC

Crear bytecode de CPython a partir de código fuente PY con el intérprete local y la versión correctos.

Convierte archivos PY en línea

Todavía no tenemos un conversor en línea específico para PY a PYC, pero puedes convertir archivos PY en línea a estos formatos:

¿Quiere convertir PY a PYC?

Háganoslo saber. Elegimos qué conversiones añadir a continuación según el interés.

Cómo convertir un archivo py a pyc

Un entorno de implementación puede requerir bytecode de CPython en lugar de un archivo source, o un desarrollador puede querer generar la import cache para un proyecto. Crear un archivo .pyc es un paso de compilación local realizado por el intérprete de Python que lo ejecutará, no una conversión general de documentos.

Qué es el formato PY

.py es un archivo source de Python de texto plano que contiene instrucciones, funciones, clases, imports, comentarios y otro código de programa. Los desarrolladores crean y editan archivos PY en Visual Studio Code, PyCharm, IDLE o cualquier editor de texto. CPython analiza el source y lo compila en bytecode en memoria antes de la ejecución; los módulos importados también pueden tener ese bytecode escrito en un archivo de cache PYC.

Qué es el formato PYC

.pyc es un archivo binario de bytecode producido por CPython. Su encabezado contiene el identificador de bytecode del intérprete y la información de validez de la cache; el resto contiene bytecode de Python serializado. CPython normalmente almacena los archivos generados en __pycache__, utilizando nombres como module.cpython-312.pyc.

Una cache puede evitar volver a compilar un módulo importado que no ha cambiado, pero no es un reemplazo ejecutable para toda la aplicación y no oculta el source de forma segura. El bytecode puede inspeccionarse o decompilarse, y un archivo PYC sigue estando vinculado a una implementación y versión concretas de Python.

Cómo crear un archivo PYC

Instala la versión oficial de CPython requerida por el sistema de destino y, a continuación, abre un terminal en el directorio que contiene el archivo source. El comando python del intérprete puede llamarse python3 en algunos sistemas.

  1. Compilar un archivo source en la ubicación de cache normal:
    python -m py_compile script.py
  2. Compilar todos los archivos de Python de un directorio, incluidos los subdirectorios:
    python -m compileall project_folder
  3. Colocar el PYC generado junto al archivo source en lugar de __pycache__:
    python -m compileall -b script.py
  4. Especificar un nombre de archivo de salida exacto con la standard library:
    python -c "import py_compile; py_compile.compile('script.py', cfile='output/script.pyc')"

El directorio principal de la ruta cfile debe existir previamente. Usa los mismos comandos con python3 si ese es el nombre del intérprete instalado. Ejecutar un script directamente normalmente lo compila en memoria; importar un módulo es lo que normalmente crea su archivo de cache. Los IDE compatibles con Python utilizan el intérprete configurado y pueden generar archivos PYC al ejecutar o importar módulos del proyecto.

Utiliza CPython local en lugar de un conversor online. Un servicio web recibiría el código source y podría compilarlo con una versión incorrecta de Python; no existe ningún servicio de conversión online de propósito general que sea preferible para el trabajo habitual de PY a PYC. Un IDE o un terminal de escritorio proporciona la misma compilación mediante el intérprete local seleccionado.

Compatibilidad y limitaciones

Un PYC creado por CPython 3.12 generalmente no puede utilizarse con CPython 3.11, Python 2 u otra implementación de Python. Compila con la misma versión principal y secundaria y, preferiblemente, con la misma implementación utilizada en el entorno de implementación. CPython puede ignorar y regenerar una cache cuando sus datos de marca de tiempo y tamaño o sus datos de validez basados en hash ya no coinciden con el source.

La compilación detecta errores de sintaxis, pero no prueba el comportamiento del programa. Las dependencias de runtime, las rutas de import, las funciones del sistema operativo, la configuración y los errores de runtime siguen sin resolverse. Los paquetes importados aún deben instalarse, a menos que la aplicación se empaquete por separado. Para la distribución, utiliza un wheel, un entorno virtual, un paquete ejecutable o un contenedor cuando corresponda; los archivos PYC aislados son principalmente caches del intérprete o artefactos de implementación específicos de una implementación.

PY vs PYC: comparación de formatos

Cómo se comparan los formatos PY y PYC en las propiedades que más importan para esta conversión.

Comparación de los formatos de archivo PY y PYC
Propiedad .PY Python source file .PYC Python compiled bytecode
Legible como texto plano Sí No
Formato de texto Básico Ninguno
Imágenes No No
Edición posterior Fácil No editable directamente
Se abre en un navegador web No No
Tamaño de archivo típico Pequeño Muy pequeño
Estándar abierto Sí Sí
Más adecuado para Edición y posproducción Incrustación en aplicaciones
Introducido 1991 1991
Desarrollador Python Software Foundation Python Software Foundation
Tipo MIME text/x-python —

La información sobre extensiones y tipos de archivo la proporciona File-Extensions.org

Preguntas frecuentes

¿Convertir un archivo .py a .pyc elimina mi código fuente de Python?

Sí, el archivo .pyc almacena código de bytes compilado en lugar del código fuente original legible. Está pensado para ejecutarse y no es un reemplazo completamente editable del archivo .py, aunque parte del código de bytes puede someterse a ingeniería inversa.

¿Cualquier versión de Python puede ejecutar un archivo .pyc creado a partir de un archivo .py?

No, un archivo .pyc normalmente necesita la misma versión de CPython, o una compatible, y la misma implementación que lo creó. Una incompatibilidad de versiones suele provocar un error de “bad magic number” u otro error de importación.

¿Por qué mi archivo .pyc falla cuando intento ejecutarlo por sí solo?

Un archivo .pyc normalmente se compila como un módulo y puede depender de su paquete, sus importaciones, el directorio de trabajo y el entorno de ejecución. También puede fallar si el código fuente tenía errores de sintaxis o dependencias, o si se compiló con configuraciones incompatibles del intérprete.

¿Puedo convertir un archivo .pyc de nuevo al archivo .py original?

No, compilar .py a .pyc no es un proceso reversible sin pérdida. Parte de la estructura del código puede recuperarse a partir del código de bytes, pero los comentarios, el formato y, a veces, las construcciones exactas del código fuente se pierden.

Otras conversiones de archivos .py

Conversión inversa

Convertir a .pyc
desde otros formatos

Compartir en redes sociales:

Ya descargado

Este archivo ya se ha descargado. Para proteger tu privacidad, lo borramos de nuestro servidor justo después de la descarga, así que no se puede volver a descargar. Si lo necesitas otra vez, vuelve a convertir el archivo.