O bytecode é carregado em tempo de execução em Python e interpretado pela máquina virtual, que é um pedaço de código que lê cada instrução no bytecode e executa qualquer operação especificada.
O bytecode é gerado automaticamente no volume no mesmo diretório que o arquivo .py quando o módulo python for importado pela primeira vez, ou quando a fonte for posterior ao arquivo compilado atualmente. Na próxima vez que o programa for executado, o interpretador Python usará esse arquivo para pular a etapa de compilação.
Executar o script não é considerado uma importação e nenhum arquivo .pyc será gerado. Por exemplo, vamos escrever um arquivo de script abc.py, que importe outro módulo xyz.py. Agora execute o arquivo abc.py , xyz .pyc será gerado porque xyz é importado, mas abc.pyc não será ser gerado porque abc.py não é importado.
Mas existem módulos e comandos internos py_compile e compileall que facilitam a criação de um arquivo pyc.
- Usando o py_compile.compile : O módulo py_compile pode compilar manualmente qualquer módulo. Uma maneira é usar interativamente a função py_compile.compile neste módulo:
> > > importar py_compile > > > py_compile.compile (`abc.py`)
Isso gravará .pyc no mesmo local que abc.py.
- Usando py_compile. main() : compila vários arquivos ao mesmo tempo.
> > > importar py_compile > > > py_compile.main ([`File1.py`,` File2.py`, `File3.py`])
- Usando a função compileall.compile_dir() : compila todos os arquivos python presentes no diretório fornecido.
> > > importar compilar tudo > > > compileall.compile_dir (directoryname)
- Usando py_compile no terminal:
$ python -m py_compile Arquivo1.py Arquivo2.py Arquivo3.py ...
Ou para compilar arquivos interativamente
$ python -m py_compile - Arquivo1.py Arquivo2.py Arquivo3.py. ... ...
- Usando compileall em um terminal: Este comando navegará recursivamente automaticamente para subdiretórios e criará arquivos .pyc para todos os arquivos python que encontrar.
$ python -m compileall
Observação . O módulo compileall e py_compile faz parte da biblioteca padrão python, então você não precisa instalar nada extra para usá-lo.
Links:
1. https://docs.python.org/3/library/py_compile .html
2. https://docs.python.org/2/library/compileall .html
3. Effbot
Este artigo é cortesia de Shubham Bansal . Se você é Python.Engineering e gostaria de contribuir, você também pode escrever um artigo usando contribute.python.engineering ou postando um artigo contribua @ python.engineering. Veja seu artigo na página inicial do Python.Engineering e ajude outros geeks.