Python - Tempos de execução
Nas aplicações Python que tenho passado para executável nota-se uma demora significativa até ao arranque.
Nas últimas aplicações que tenho construído em Python uso o Tkinter para a interface gráfica. No entanto não é a biblioteca de interface gráfica que é a responsável pela demora no arranque das aplicações.
No meu disco, na fase de programação ou utilização costumo usar a inicialização da aplicação em script tal qual, ou seja executo o programa com duplo clique no ficheiro py ou através da linha de comandos
Por exemplo o comando seguinte abre a aplicação num ou dois segundos:
python entreeixos2.py
Para disponibilizar a aplicação a terceiros, há que criar um executável, com o comando
pyinstaller entreeixos2.py
É criado um pacote com as dependências necessárias à execução do programa. Com duas pastas de Build e Dist:
Na pasta Build encontra-se o executável para onde podem copiar as imagens que entram na aplicação.
A execução demora um par de segundos. Nada de muito diferente de correr o script directamente. O caso é que assim temos uma subpasta _internal com os recursos. No meu caso 27Mb e 956 ficheiros:
Uma outra opção é criar o executável com o comando
pyinstaller --onefile entreeixos2.py
Qeu compacta tudo num só ficheiro e é mais fácil para distribuir. Também há que copiar as imagens para a pasta do exe. A execução desta aplicação tarda uns 5 segundos. Se estiver a funcionar desde uma localização de rede pode demorar meio minuto.
A criação de um exe por estes meios, em Python, não cria um verdadeiro exe como esperaríamos. Cria um pacote com todas as dependências necessárias para a execução do script.
Como se escreve no site:
PyInstaller reads a Python script written by you. It analyzes your code to discover every other module and library your script needs in order to execute. Then it collects copies of all those files – including the active Python interpreter! – and puts them with your script in a single folder, or optionally in a single executable file.
https://pyinstaller.org/en/stable/operating-mode.html
A opção para criar um exe "nativo", que também não o é verdadeiramente é o .NET, pois tamb+em cria uma linguagem intermédia.
Outras opções são o Neutralino, Electro, Tauri para linguagems "Web".
Comentários
Enviar um comentário
Obrigado pelo seu contacto.