El código de bytes se carga en tiempo de ejecución en Python y lo interpreta la máquina virtual, que es un fragmento de código que lee cada instrucción en el código de bytes y realiza cualquier operación especificada.
El código de bytes se genera automáticamente en el volumen el mismo directorio que el archivo .py cuando el módulo python se importa por primera vez, o cuando la fuente es posterior al archivo compilado actualmente. La próxima vez que se ejecute el programa, el intérprete de Python usará este archivo para omitir el paso de compilación.
Ejecutar el script no se considera una importación y no se incluirá ningún archivo .pyc. generado. Por ejemplo, escribamos un archivo de script abc.py, que importe otro módulo xyz.py. Ahora ejecute el archivo abc.py , se generará xyz .pyc porque se importa xyz, pero abc.pyc no generarse porque abc.py no se importa.
Pero hay módulos integrados y comandos py_compile y compileall que facilitan la creación de un archivo pyc.
- Uso de py_compile.compile: El módulo py_compile puede compilar manualmente cualquier módulo. Una forma es utilizar de forma interactiva la función py_compile.compile en este módulo:
> > > importar py_compile > > > py_compile.compile (`abc.py`)
Esto escribirá .pyc en la misma ubicación que abc.py.
- Usando py_compile. main () : compila varios archivos al mismo tiempo.
> > > importar py_compile > > > py_compile.main ([`File1.py`,` File2.py`, `File3.py`])
- Uso de la función compileall.compile_dir() : compila todos los archivos de python presentes en el directorio proporcionado.
> > > importar compilar todo > > > compileall.compile_dir (nombre del directorio)
- Utilizando py_compile en la terminal:
$ python -m py_compile File1.py File2.py File3.py ...
O para compilar archivos de forma interactiva
$ python -m py_compile - File1.py File2.py File3.py. ... ...
- Uso de compileall en una terminal: este comando navegará automáticamente de forma recursiva a los subdirectorios y creará archivos .pyc para todos los archivos de python que encuentre.
$ python -m compileall
Nota . El módulo compileall y py_compile es parte de la biblioteca estándar de python, por lo que no necesita instalar nada adicional para usarlo.
Enlaces:
1. https://docs.python.org/3/library/py_compile .html
2. https://docs.python.org/2/library/compileall .html
3. Effbot
Este artículo es cortesía de Shubham Bansal . Si es Python.Engineering y le gustaría contribuir, también puede escribir un artículo usando contribuya.python.engineering o publicando un artículo contribuir @ python.engineering. Vea su artículo que aparece en la página de inicio de Python.Engineering y ayude a otros geeks.