Raspberry

Gerar binário a partir do script Python com Cython

Gerar binário a partir do script Python | resolvendo nomes | iniciar programa no boot | Multithread no Raspberry | Compilar programas escritos em Python

No artigo anterior vimos como criar uma biblioteca para importar em nosso script Python, utilizando Cython. É uma ótima opção para proteger código que não deva ser modificado, ainda que o código seja distribuido. Nesse artigo veremos outra utilização de Cython, usando-o agora para gerar binário a partir do script Python; não uma biblioteca, mas o programa principal.

Gerar binário a partir do script Python

Para isso, vamos utilizar o mesmo código do artigo anterior. Se não o leu, sugiro que o faça previamente, porque nele discorri sobre a razão de ter sido escrito assim. Agora vamos ver o efeito de sua execução como binário direto.

Fazer essa compilação é mais simples ainda do que gerar a biblioteca, então vamos direto ao processo. Primeiro, eis o código a ser utilizado:

O nome dado ao arquivo continua o mesmo do artigo anterior; dobitaobyte.pyx. Inicialmente o código foi escrito e testado como um script Python comum, por isso recomendo mais uma vez, leia o artigo anterior.

Gerar o arquivo .c

Para gerar o arquivo com extensão e código C, simplesmente executa-se algo como:

Com isso, um arquivo com o código C é criado com o mesmo nome do arquivo original, com extensão .c.

Compilar o arquivo .c

Agora para compilar nosso programa, devemos utilizar o gcc com os seguintes parâmetros (supondo ainda que esteja utilizando o mesmo nome de arquivo que eu utilizei, dobitaobyte.c):

Isso criará o binário com o nome passado na flag -o, cuja escolha foi dobitaobyte. O diretório então chamado bin conterá os arquivos da imagem a seguir, cuja imagem contém também a execução do programa. Repare que o programa agora é completamente inútil, uma vez que não é possível chamar suas funções, que foram criadas para o artigo anterior. Mas não importa, porque com o mesmo código conseguimos ver duas coisas importantes; o programa foi gerado e ao executá-lo, pudemos ver a execução da função nome que no artigo anterior não era executado por estarmos usando esse código como uma biblioteca. Legal?

Gerar binário a partir do script Python

Agora já temos uma referência para criar bibliotecas e uma referência para criar o programa em si. Espero que tenha gostado desses dois breves artigos e que possam lhe servir de inspiração!

Onde comprar Raspberry?

Como sempre, sugiro a compra do Raspberry com nosso parceiro CurtoCircuito, que tem além de Raspberry, diversos outros componentes importantes e úteis para makers, como uma gama incrível de sensores.

Em breve teremos mais artigos relacionados a Raspberry, prepare seu coração (e seu bolso, porque certamente quererá ter mais uma novidade).

Até a próxima!