Cada vez que se compila el script de Python, genera automáticamente un código compilado denominado código de bytes. El código de bytes en realidad no se interpreta como código de máquina, a menos que haya alguna implementación exótica como PyPy .
El código de bytes se carga en el tiempo de ejecución de Python y lo interpreta una máquina virtual, que es una pieza de código que lee cada instrucción en el código de bytes y ejecuta cualquier operación que se indique.
El código de bytes se crea automáticamente en el mismo directorio que el archivo .py, cuando se importa un módulo de python por primera vez o cuando la fuente es más reciente que el archivo compilado actual. La próxima vez, cuando se ejecute el programa, el intérprete de Python utilizará este archivo para omitir el paso de compilación.
La ejecución de un script no se considera una importación y no se creará ningún archivo .pyc. Por ejemplo, escribamos un archivo de script abc.py que importe otro módulo xyz.py. Ahora ejecute el archivo abc.py, se creará xyz.pyc ya que se importa xyz, pero no se creará ningún archivo abc.pyc ya que no se importará abc.py.
Pero existe un py_compile incorporado y módulos y comandos compileall que facilitan la creación del archivo .pyc.
- Usando la función py_compile.compile : El módulo py_compile puede compilar manualmente cualquier módulo. Una forma es usar la función py_compile.compile en ese módulo de forma interactiva:
>>> import py_compile >>> py_compile.compile('abc.py')
Esto escribirá el .pyc en la misma ubicación que abc.py.
- Usando la función py_compile.main() : compila varios archivos a la vez.
>>> import py_compile >>> py_compile.main(['File1.py','File2.py','File3.py'])
- Usando la función compileall.compile_dir() : compila cada archivo de Python presente en el directorio proporcionado.
>>> import compileall >>> compileall.compile_dir(directoryname)
- Usando py_compile en la Terminal:
$python -m py_compile File1.py File2.py File3.py ...
O, para compilación interactiva de archivos
$python -m py_compile - File1.py File2.py File3.py . . .
- Uso de compileall en la Terminal: este comando irá 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 es necesario instalar nada adicional para usarlo.
Referencias:
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 una contribución de Shubham Bansal . Si le gusta GeeksforGeeks y le gustaría contribuir, también puede escribir un artículo usando contribuya.geeksforgeeks.org o envíe su artículo por correo a contribuya@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA