Compilando arquivos Python para Bytecode

361 0

Venho mostrar neste artigo uma forma bem simples de compilar arquivos Python para Bytecode. Programas de computador podem ser compilados para a linguagem binária ou interpretados em tempo de execução. Um programa compilado possui geralmente uma performance maior que os programas interpretados, pois os códigos já foram previamente testados, e o computador apenas tem de executa-los sem se preocupar com possíveis erros, enquanto que nos programas interpretados, o computador terá que analisar cada instrução enquanto executa. Mas existem também muitas vantagens de um programa ser interpretado, como por exemplo, fica independente de plataforma na qual se executa.

Programas em Python geralmente são interpretados, por isso para poder rodar programas Python em sua maquina, o utilizador precisa ter o interpretador do Python instalado e configurado na sua maquina.

Isso tem deixado muitos iniciantes em Python frustrados, pois assim que começamos a nos envolver com uma linguagem de programação, queremos sempre mostrar aos outros os programinhas que estamos fazendo, agora pedir para um amigo instalar Python para poder rodar o seu programa pode sair caro. Talvez a solução seria a Microsoft trazer o Python já configurado no Windows(parece que linux é assim).

Mas mesmo sendo uma linguagem interpretada, podemos compilar os nossos scripts Python para Bytecode, aumentando assim a performance dos nossos programas e jogos. Bytecode é um código intermediário entre a linguagem de programação e a linguagem de maquina. Para isso existe um modulo compiler, que vem junto com o Python compiler package.

Este modulo compila os seus scripts Python e os transforma em .pyc, são mais eficientes em termos de execução. O pacote contém vários outros módulos para alem do compiler, e este também possui várias funções, mas, nós vamos nos concentrar naquilo que é o objectivo principal do artigo: compilar um script Python. Então vamos importar logo o módulo:

import compiler

Dai, é só invocarmos o método responsável por compilar scripts, que é o método compileFile(string) onde string é o caminho completo para o arquivo. Exemplo, se o seu arquivo estiver em C:\game e o seu nome for jogo.py, a função será chamada assim:

compiler.compileFile(“C:\gamejogo.py”)

O resultado dessa execução será um arquivo( jogo.pyc), que é o seu script transformado para Bytecode. Para compilar vários arquivos ao mesmo tempo, por exemplo, se você tiver um projecto com vários scripts e pretende compilar todos, aconselho a usar o modulo compileall, que possui a função compile_dir(string) onde string é o caminho para o directório que contém os scripts. Note que a função também vai compilar os arquivos nos subdiretórios do diretório indicado.

Resumindo, ara compilar um arquivo:

import compiler

compiler.compileFile(string)

Para compilar um diretório:

import compileall

compileall.compile_dir(string)
(Visited 22 times, 1 visits today)

Elisio Leonardo

Elisio Leonardo is an experienced Web Developer, Solutions Architect, Digital Marketing Expert, and content producer with a passion for technology, artificial intelligence, web development, and entertainment. With nearly 15 years of writing engaging content on technology and entertainment, particularly Comic Book Movies, Elisio has become a trusted source of information in the digital landscape.