Criando executável de um código python

0

Recentemente precisei instalar um aplicação python que criei para um cliente, e quem já passou por isso deve ter percebido que pode ser um processo um pouco maçante dependendo da quantidade de módulos(libs) que sua aplicação use. Uma saída foi empacotar tudo em um instalador e o cliente só precisa se preocupar em executar um .exe. Veja como fazer de forma bem rápida.

Considerando que sua app esteja pronta e o Python e PIP instalados em sua máquina, basta seguir os passos:

  1. Instalar o pacote PyInstaller, esse é o camarada que faz todo o trabalho duro de “empacotar” tudo. Execute o comando em seu terminal:
  2. pip install pyinstaller
  3. Feita a instalação corretamente, acesse a pasta do seu projeto com o cmd ou seu editor de código de preferência, no meu caso o VSCode.
  4. Veja que inicialmente tenho apenas um arquivo app.py e nele duas linhas de código. Em breve explico o porque da segunda linha.
  5. Agora execute o comando para gerar o executável:
  6. pyinstaller app.py
  7. Serão geradas duas pastas(build e dist) e um arquivo de configuração com a extensão .specs. Este arquivo pode ser modificados para gerar resultados diferentes, veja aqui.
  8. O que importa para nós é o que está na pasta dist. Execute o arquivo .exe.
  9. Lembra que comentei sobre segunda linha do código? Sem ela o código terminaria a execução e fecharia o console sem nem dar tempo de comemorarmos o resultado. Não encontrei uma forma nativa de resolver isso mas para este exemplo resolve, basta apertar a tecla Enter que a tela se encerra.
  10. O que é enviado para o cliente esta na pasta dist, não fica muito leve já que o python vai junto mas é bem útil em alguns casos, se o ambiente de destino já tiver o python obviamente que seria melhor mandar só o app.py. Mas enfim, basta zipar tudo e ser feliz.

Bom é isso. Se tiverem sugestões e quiserem compartilhar, são todos bem-vindos. Abraços e até o próximo post.

Compartilhe.

Sobre o autor

Programador, apaixonado por games, empreendedor. Formado em Ciência da Computação com especialização em desenvolvimento para web, trabalhei com projetos .Net C#, NodeJs e Python nestes 10 anos de experiência no setor privado, em orgão públicos e na minha startup, o EstoqueMestre. http://rodrigoreisf.com.br