Avançar para o conteúdo principal

Python - Tempos de execução

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

Mensagens populares deste blogue

C# - Viadutos Excel - ISPOL

C# - Viadutos Excel - ISPOL Ler dados do Excel e passar a informação para o ISPOL é um ganho de produtividade e organização. Desta vez, apresento uma utilidade que lê um ficheiro Excel, e transforma os dados para o menu de estruturas do ISPOL. Partindo de um Excel organizado, por pks eixos e espessuras da estrutura etc... como o seguinte: Elaborei um programita em CSharp: Este programa funciona em modo "DOS" não tem uma interface gráfica de janelas: O programa cria os ficheiros necessários, o Excel pode estar organizado por eixos, e o programa guarda um ficheiro para cada eixo: O resultado depois de abrir o ficheiro em ISPOL é o seguinte: Com as alterações ao projecto pode-se manter um ficheiro de apresentação e controlo em Excel.

ISPOL - Representação de Gabaris

ISPOL - Representação de Gabaris No ISPOL podemos representar ao longo do traçado um contorno e até realizar variações. A representação de um contorno ou gabari pode ser realizada no ISPOL de um modo simples, usando por exemplo um Símbolo (bloco) da biblioteca, ou um ou vários criados à medida para atender aos casos necessários. Na imagem abaixo um exemplo da biblioteca do ISPOL, representado no perfil transversal. Estas secções são constituídas por símbolos/blocos: Podem-se desenhar ao longo do eixo proporcionando a vista típica destas situações, uma espécie de sólido que enche o traçado. Além desta representação "simples" o ISPOL permite realizar transições entre símbolos diferentes, por exemplo para representar os diferentes gabaris em recta e curva. Ou outras situações que se achem necessárias. Permite ainda condicionar a representação destes símbolos por valores de raio. Isto é para um determinado raio. Pode ser usado para indicar de forma automática ao programa que em r...

Politica de privacidade das aplicações colocadas na Play Store do Google

Politica de privacidade das aplicações colocadas na Play Store do Google. As aplicações não recolhem qualquer dado do utilizador nem a armazenam ou partilham com terceiros. Não recolhem a localização nem a armazenam ou partilham com terceiros. Alguma informação sobre os utilizadores que possa chegar ao programador por via da Play Store, será tratada de acordo com toda a confidencialidade, e não fornecida a terceiros. Obrigado.