Article image

NS

Nicolas Souto28/03/2023 19:47
Compartilhe

Como criar um executável para um aplicativo Python?

  • #Python

A linguagem Python é conhecida por ser simples, dinâmica e código-aberto, e isto atrai bastante os desenvolvedores. Mas ela tem um diferencial: é interpretada, não compilada! Apesar de, por padrão, não gerar nenhum executável, o PyPi possui vários módulos para gerar executáveis. E eis aqui o mais conhecido: o PyInstaller.

Usando o PyInstaller

O PyInstaller é um empacotador que agrupa todas as dependências do seu programa em Python num único pacote. Isto é: o aplicativo pode ser executado sem a necessidade do Python instalado em seu computador. Ele requer uma versão maior ou igual à versão 3.7 do Python. Para instalá-lo no seu computador, use este comando:

pip install PyInstaller

Para gerar o executável, vá até o diretório do código do seu programa e use este comando (o "Main" pode ser substituído pelo nome do arquivo principal do seu programa):

pyinstaller Main.py

E veja o resultado: uma nova pasta é criada, e ela possui as dependências e o executável do seu aplicativo Python.

Usando o PyInstaller diretamente pelo código

Se você quer ver a "mágica" acontecer pelo seu código, crie um arquivo chamado setup.py e importe o módulo PyInstaller.__main__. Depois, use o método run() usando como parâmetro uma lista com todas as especificidades do seu aplicativo (se você quer saber os subcomandos, leia no site oficial do módulo). O seu código vai ficar mais ou menos assim:

import PyInstaller.__main__
PyInstaller.__main__.run([
"Main.py"
])

Depois disso, execute o comando:

pyinstaller setup.py

E funcionará do mesmo modo que o anterior.

"Mas como vou criar um instalador?"

Conforme disse antes, o PyInstaller gera uma pasta com dependências além do executável, e não um executável portável. Para isto, seria necessário criar um instalador empacotando todas as dependências. No próximo artigo, será explicado como elaborar um instalador usando o Inno Setup e o Wix Toolset.

Compartilhe
Comentários (2)
Claudio Bittencourt
Claudio Bittencourt - 28/03/2023 21:28

Interessante, gostei!

DC

Daniel Correa - 28/03/2023 20:03

Muito legal, não sabia dessa.