312 lines
6.2 KiB
Markdown
312 lines
6.2 KiB
Markdown
|
|
# 🚀 Comandos Rápidos para Compilar NoIdle
|
||
|
|
|
||
|
|
## 📋 Escolha Seu Ambiente
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 🪟 Windows (Recomendado)
|
||
|
|
|
||
|
|
### Método 1: Comando Simples (Rápido)
|
||
|
|
```powershell
|
||
|
|
# Instalar dependências
|
||
|
|
pip install pyinstaller pywin32 psutil requests pystray pillow schedule
|
||
|
|
|
||
|
|
# Compilar
|
||
|
|
pyinstaller --onefile --windowed --name NoIdle CLIENTE_CORRIGIDO.py
|
||
|
|
|
||
|
|
# Resultado: dist\NoIdle.exe
|
||
|
|
```
|
||
|
|
|
||
|
|
### Método 2: Script Automatizado (Recomendado)
|
||
|
|
```powershell
|
||
|
|
# Executar script de build
|
||
|
|
.\BUILD_NOIDLE.ps1
|
||
|
|
|
||
|
|
# Com limpeza prévia
|
||
|
|
.\BUILD_NOIDLE.ps1 -Clean
|
||
|
|
|
||
|
|
# Com teste após build
|
||
|
|
.\BUILD_NOIDLE.ps1 -Test
|
||
|
|
|
||
|
|
# Com ícone personalizado
|
||
|
|
.\BUILD_NOIDLE.ps1 -Icon "noidle.ico"
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 🐧 Linux (Docker)
|
||
|
|
|
||
|
|
### Método 1: Comando Docker Direto
|
||
|
|
```bash
|
||
|
|
# Usando imagem pronta
|
||
|
|
docker run --rm -v $(pwd):/src cdrx/pyinstaller-windows:python3 \
|
||
|
|
/bin/bash -c "pip install pywin32 psutil requests pystray pillow schedule && \
|
||
|
|
pyinstaller --onefile --windowed --name NoIdle CLIENTE_CORRIGIDO.py"
|
||
|
|
|
||
|
|
# Resultado: dist/NoIdle.exe
|
||
|
|
```
|
||
|
|
|
||
|
|
### Método 2: Script Automatizado (Recomendado)
|
||
|
|
```bash
|
||
|
|
# Tornar executável (primeira vez)
|
||
|
|
chmod +x BUILD_LINUX.sh
|
||
|
|
|
||
|
|
# Executar
|
||
|
|
./BUILD_LINUX.sh
|
||
|
|
|
||
|
|
# Seguir as opções do menu
|
||
|
|
```
|
||
|
|
|
||
|
|
### Método 3: Dockerfile Customizado
|
||
|
|
```bash
|
||
|
|
# Construir imagem
|
||
|
|
docker build -f Dockerfile.build -t noidle-builder .
|
||
|
|
|
||
|
|
# Compilar
|
||
|
|
docker run --rm -v $(pwd):/src noidle-builder
|
||
|
|
|
||
|
|
# Resultado: dist/NoIdle.exe
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 🧪 Testar o Executável
|
||
|
|
|
||
|
|
### No Windows:
|
||
|
|
|
||
|
|
```powershell
|
||
|
|
# Teste 1: Executar normalmente
|
||
|
|
.\dist\NoIdle.exe
|
||
|
|
|
||
|
|
# Teste 2: Modo silencioso
|
||
|
|
.\dist\NoIdle.exe --silent
|
||
|
|
|
||
|
|
# Teste 3: Verificar processo
|
||
|
|
Start-Process -FilePath ".\dist\NoIdle.exe" -ArgumentList "--silent" -WindowStyle Hidden
|
||
|
|
Start-Sleep -Seconds 3
|
||
|
|
Get-Process -Name "NoIdle"
|
||
|
|
|
||
|
|
# Teste 4: Verificar tamanho
|
||
|
|
Get-Item .\dist\NoIdle.exe | Select-Object Name, @{N='Size(MB)';E={[math]::Round($_.Length/1MB,2)}}, LastWriteTime
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 📦 Criar Pacote de Distribuição
|
||
|
|
|
||
|
|
### Estrutura do Pacote:
|
||
|
|
```
|
||
|
|
NoIdle-v1.0/
|
||
|
|
├── NoIdle.exe
|
||
|
|
├── CONFIGURAR_AUTOSTART_NOIDLE.ps1
|
||
|
|
├── VERIFICAR_E_CORRIGIR_NOIDLE.ps1
|
||
|
|
├── GUIA_RAPIDO_AUTOSTART.md
|
||
|
|
├── LEIA_PRIMEIRO.md
|
||
|
|
└── README.txt
|
||
|
|
```
|
||
|
|
|
||
|
|
### Windows (PowerShell):
|
||
|
|
```powershell
|
||
|
|
# Criar diretório
|
||
|
|
New-Item -ItemType Directory -Path "NoIdle-Package" -Force
|
||
|
|
|
||
|
|
# Copiar arquivos
|
||
|
|
Copy-Item "dist\NoIdle.exe" -Destination "NoIdle-Package\"
|
||
|
|
Copy-Item "CONFIGURAR_AUTOSTART_NOIDLE.ps1" -Destination "NoIdle-Package\"
|
||
|
|
Copy-Item "VERIFICAR_E_CORRIGIR_NOIDLE.ps1" -Destination "NoIdle-Package\"
|
||
|
|
Copy-Item "GUIA_RAPIDO_AUTOSTART.md" -Destination "NoIdle-Package\"
|
||
|
|
Copy-Item "LEIA_PRIMEIRO.md" -Destination "NoIdle-Package\"
|
||
|
|
|
||
|
|
# Criar ZIP
|
||
|
|
Compress-Archive -Path "NoIdle-Package\*" -DestinationPath "NoIdle-v1.0.zip" -Force
|
||
|
|
|
||
|
|
# Limpar
|
||
|
|
Remove-Item -Path "NoIdle-Package" -Recurse -Force
|
||
|
|
```
|
||
|
|
|
||
|
|
### Linux (Bash):
|
||
|
|
```bash
|
||
|
|
# Criar diretório
|
||
|
|
mkdir -p NoIdle-Package
|
||
|
|
|
||
|
|
# Copiar arquivos
|
||
|
|
cp dist/NoIdle.exe NoIdle-Package/
|
||
|
|
cp CONFIGURAR_AUTOSTART_NOIDLE.ps1 NoIdle-Package/
|
||
|
|
cp VERIFICAR_E_CORRIGIR_NOIDLE.ps1 NoIdle-Package/
|
||
|
|
cp GUIA_RAPIDO_AUTOSTART.md NoIdle-Package/
|
||
|
|
cp LEIA_PRIMEIRO.md NoIdle-Package/
|
||
|
|
|
||
|
|
# Criar ZIP
|
||
|
|
zip -r NoIdle-v1.0.zip NoIdle-Package/
|
||
|
|
|
||
|
|
# Limpar
|
||
|
|
rm -rf NoIdle-Package
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 🔧 Troubleshooting
|
||
|
|
|
||
|
|
### Problema: "pip não encontrado"
|
||
|
|
```powershell
|
||
|
|
# Windows
|
||
|
|
python -m pip install --upgrade pip
|
||
|
|
|
||
|
|
# Linux
|
||
|
|
sudo apt install python3-pip
|
||
|
|
```
|
||
|
|
|
||
|
|
### Problema: "pyinstaller não encontrado"
|
||
|
|
```powershell
|
||
|
|
# Instalar globalmente
|
||
|
|
pip install pyinstaller
|
||
|
|
|
||
|
|
# Ou executar como módulo
|
||
|
|
python -m PyInstaller --onefile --windowed --name NoIdle CLIENTE_CORRIGIDO.py
|
||
|
|
```
|
||
|
|
|
||
|
|
### Problema: "ModuleNotFoundError"
|
||
|
|
```powershell
|
||
|
|
# Reinstalar todas as dependências
|
||
|
|
pip install --force-reinstall pywin32 psutil requests pystray pillow schedule
|
||
|
|
```
|
||
|
|
|
||
|
|
### Problema: "Executável não inicia"
|
||
|
|
```powershell
|
||
|
|
# Compilar com console para ver erros
|
||
|
|
pyinstaller --onefile --console --name NoIdle-debug CLIENTE_CORRIGIDO.py
|
||
|
|
.\dist\NoIdle-debug.exe
|
||
|
|
```
|
||
|
|
|
||
|
|
### Problema: "Docker não funciona"
|
||
|
|
```bash
|
||
|
|
# Verificar Docker
|
||
|
|
docker --version
|
||
|
|
|
||
|
|
# Testar Docker
|
||
|
|
docker run hello-world
|
||
|
|
|
||
|
|
# Dar permissões (se necessário)
|
||
|
|
sudo usermod -aG docker $USER
|
||
|
|
newgrp docker
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## ⚡ Comandos Quick Reference
|
||
|
|
|
||
|
|
### Build Rápido (Windows):
|
||
|
|
```powershell
|
||
|
|
pip install pyinstaller pywin32 psutil requests pystray pillow schedule && pyinstaller --onefile --windowed --name NoIdle CLIENTE_CORRIGIDO.py
|
||
|
|
```
|
||
|
|
|
||
|
|
### Build Rápido (Linux):
|
||
|
|
```bash
|
||
|
|
./BUILD_LINUX.sh
|
||
|
|
```
|
||
|
|
|
||
|
|
### Testar Rápido:
|
||
|
|
```powershell
|
||
|
|
.\dist\NoIdle.exe --silent
|
||
|
|
Get-Process -Name "NoIdle"
|
||
|
|
```
|
||
|
|
|
||
|
|
### Limpar Tudo:
|
||
|
|
```powershell
|
||
|
|
# Windows
|
||
|
|
Remove-Item -Path "build","dist" -Recurse -Force -ErrorAction SilentlyContinue
|
||
|
|
Remove-Item -Path "*.spec" -Force -ErrorAction SilentlyContinue
|
||
|
|
|
||
|
|
# Linux
|
||
|
|
rm -rf build dist *.spec
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 📊 Opções de PyInstaller
|
||
|
|
|
||
|
|
| Opção | Descrição |
|
||
|
|
|-------|-----------|
|
||
|
|
| `--onefile` | Gera um único executável |
|
||
|
|
| `--windowed` | Sem janela de console (GUI) |
|
||
|
|
| `--console` | Com janela de console (debug) |
|
||
|
|
| `--name NoIdle` | Nome do executável |
|
||
|
|
| `--icon=icon.ico` | Adicionar ícone |
|
||
|
|
| `--upx-dir=C:\upx` | Comprimir com UPX |
|
||
|
|
| `--clean` | Limpar cache antes de compilar |
|
||
|
|
| `--debug all` | Modo debug completo |
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 🎯 Workflow Recomendado
|
||
|
|
|
||
|
|
### 1. Desenvolvimento (Windows):
|
||
|
|
```powershell
|
||
|
|
# Testar código Python
|
||
|
|
python CLIENTE_CORRIGIDO.py
|
||
|
|
|
||
|
|
# Compilar
|
||
|
|
.\BUILD_NOIDLE.ps1 -Clean -Test
|
||
|
|
|
||
|
|
# Verificar resultado
|
||
|
|
.\dist\NoIdle.exe --silent
|
||
|
|
```
|
||
|
|
|
||
|
|
### 2. Produção (Linux):
|
||
|
|
```bash
|
||
|
|
# Compilar para Windows
|
||
|
|
./BUILD_LINUX.sh
|
||
|
|
|
||
|
|
# Criar pacote
|
||
|
|
# (escolher opção no menu do script)
|
||
|
|
|
||
|
|
# Distribuir
|
||
|
|
# NoIdle-v1.0.zip
|
||
|
|
```
|
||
|
|
|
||
|
|
### 3. Distribuição:
|
||
|
|
```
|
||
|
|
1. Testar em Windows limpo
|
||
|
|
2. Enviar para clientes
|
||
|
|
3. Fornecer scripts de configuração
|
||
|
|
4. Documentação: LEIA_PRIMEIRO.md
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## ✅ Checklist de Build
|
||
|
|
|
||
|
|
Antes de distribuir:
|
||
|
|
|
||
|
|
- [ ] Código testado e funcionando
|
||
|
|
- [ ] Dependências instaladas
|
||
|
|
- [ ] Build concluído sem erros
|
||
|
|
- [ ] Executável testado em modo normal
|
||
|
|
- [ ] Executável testado em modo `--silent`
|
||
|
|
- [ ] Tamanho do arquivo OK (15-30 MB)
|
||
|
|
- [ ] Testado em Windows limpo (sem Python)
|
||
|
|
- [ ] Pacote de distribuição criado
|
||
|
|
- [ ] Documentação incluída
|
||
|
|
- [ ] Scripts PowerShell incluídos
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 🚀 TL;DR (Começar Agora)
|
||
|
|
|
||
|
|
**Windows:**
|
||
|
|
```powershell
|
||
|
|
.\BUILD_NOIDLE.ps1
|
||
|
|
```
|
||
|
|
|
||
|
|
**Linux:**
|
||
|
|
```bash
|
||
|
|
./BUILD_LINUX.sh
|
||
|
|
```
|
||
|
|
|
||
|
|
**Resultado:** `dist/NoIdle.exe` pronto para usar! 🎉
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
**Bom build! 🔨**
|
||
|
|
|