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)
Comentários Recentes