Pessoal,
Há 4 anos, em janeiro de 2021, falei sobre cx_Freeze. Esse programa transforma os scripts ou programas do Python em executáveis para Windows, Mac e Linux. É uma boa opção, só que encontrei algo mais completo e melhor: o Platypus!
(O verdadeiro Platypus - também conhecido como Ornitorrinco :) )
Não, não é esse Platypus aí da imagem!
É uma "estrutura para computação evolutiva em Python com foco em algoritmos evolutivos multiobjetivos".
Não sei o que isso tudo aí quer dizer, mas pra mim significa que é um programa onde eu coloco um código em Python e cospe um ".app", um executável para Mac ou outra plataforma.
Como eu disse lá em 2021, não quer ficar fazendo isso aqui:
>python3 teste.py
Quero que a pessoa clique no programa e que ele se pareça com algo "profissional". Só isso!
A interface é bem simples mas a ferramenta é bem poderosa.
O que dá pra fazer aqui? App Name é o nome do seu programa. Script Type é a linguagem ou script que você vai transformar em executável. Pode ser um desses aqui abaixo:
Veja a grande variedade. Desde scripts para bash até programas em Python. Achei muito bom!!!
Em Script Path, você coloca o caminho para o seu programa.
Ainda pode definir se quer uma tela para retorno de alguma informação ou não, o ícone do programa, seu nome como autor, versão e outras coisas. Preenchido tudo, clique em "Create App" e pronto. Bem simples, não?
Mas tem alguns detalhes.
Primeiro, para instalar o Platypus pode ser clonando o projeto no GitHub deles ou pelo Homebrew (no caso do Mac):
pip install -U build setuptools
git clone https://github.com/Project-Platypus/Platypus.git
cd Platypus
python -m build
ou
brew install --cask platypus
Uma vez instalado, abra o programa e edite isso aqui:
Escolha o Tipo de Script: Certifique-se de selecionar "Python" como o tipo de script no Platypus.
Caminho do Script: No campo "Script Path", selecione o script <seu_programa>.py
que criamos.
Caminho do Python: Defina o caminho do Python corretamente. Se você está usando um ambiente virtual, certifique-se de apontar para o Python dentro desse ambiente. Por exemplo, se o ambiente virtual estiver em myenv
, o caminho do Python pode ser algo como /path/to/myenv/bin/python3
.
Se não estiver usando um ambiente virtual, você pode usar o Python do sistema. Normalmente, o Python 3 está localizado em /usr/local/bin/python3
ou /usr/bin/python3
.
Incluir as Bibliotecas Necessárias: Adicione as bibliotecas necessárias (yt_dlp
, idlelib.tooltip
, etc.) na seção "Bundles Files".
Verifique o Caminho do Script: Certifique-se de que o caminho do script esteja correto e que todos os arquivos necessários estejam no mesmo diretório ou em diretórios acessíveis.
Testar no Terminal: Para garantir que o Python está configurado corretamente, teste a execução do script no terminal.
/path/to/python3 /path/to/seu_programa.py
Como colocar essas bibliotecas no programa? Simples, elas estão na pasta site_packages que está dentro do ambiente virtual do Python.
Aqui para mim está assim:
source /Users/castilho/myenv39/bin/activate
cd /Users/castilho/myenv39/lib/python3.9/site-packages
E sai isso aqui:
Sabendo onde estão as suas bibliotecas necessárias, pode mandar para o Platypus. Eu copiei tudo pra uma pasta temporária e depois passa pro programa:
mkdir -p /Users/castilho/temp_libs
cp -r yt_dlp idlelib /Users/castilho/temp_libs
No programa, em Bundled Files você adiciona as pastas das bibliotecas necessárias para o seu app rodar.
O cx-Freeze dá pra fazer mais ou menos isso, mas a execução é pela linha de comando (gera um executável mas não é um app).
Para o cx-freeze, achei interessante essa recomendação de uma estrutura para criar o .app:
MyApp/
├── setup.py
├── seu_programa.py
├── README.txt
Ou, em uma pasta você vai colocar três arquivos: o seu programa (em Python), um arquivo ReadMe e o setup, também em Python, que vai orientar toda a criação do programa, inclusive citando as bibliotecas necessárias para o programa funcionar standalone!
Esse arquivo de setup é bem simples:
import sys
from cx_Freeze import setup, Executable
# Inclui as bibliotecas e arquivos necessários
build_exe_options = {
"packages": ["tkinter", "yt_dlp", "idlelib.tooltip", "os", "threading"],
"include_files": []
}
# Define o executável
base = None
setup(
name = "Nome do Seu Programa",
version = "1.0",
description = "Aplicativo para fazer qualquer coisa",
options = {"build_exe": build_exe_options},
executables = [Executable("seu_programa.py", base=base)]
)
E para gerar o executável, faça assim:
Para testar se seu executável está funcionando, vá até a pasta onde ele está e faça isso:
Eu prefiro o .app, mas essa opção também funciona bem.
É isso!
O primeiro de muitos posts essa ano!
Feliz 2025!!
Nenhum comentário:
Postar um comentário