Packagemaker es un entorno de desarrollo integrado (IDE) profesional para crear, empaquetar y distribuir aplicaciones Python con interfaces modernas estilo Windows 11.
Versión Actual: v1.0.0 - IDE completo con sistema de compilación avanzado y empaquetado multi-plataforma.
- Barra de título personalizada: Basada en
Leviathan-UIcon fondo transparente - Efectos visuales: Soporte para acrílico, mica y blur
- Tema oscuro: Paleta consistente #121822 (fondo) / #ff5722 (acento)
- Detección automática: Encuentra scripts candidatos (
if __name__ == '__main__') - Extracción de clases: Separa automáticamente clases a
lib/_class/ - Gestión de dependencias: Analiza e incluye imports necesarios
- Minificación: Reduce tamaño del código compilado
| Método | Descripción | Seguridad |
|---|---|---|
| Simple Blind | Empaqueta todo en .iflappb |
🔒🔒 |
| Super Blind | Clases separadas por script + encriptación | 🔒🔒🔒🔒 |
- Windows: Ejecutables
.execon PyInstaller - Android: APK generable vía Buildozer
- Linux: AppImage y paquetes nativos
# Clonar repositorio
git clone https://github.com/tuusuario/packagemaker.git
cd packagemaker
# Instalar dependencias
pip install -r requirements.txt
# Ejecutar IDE
python packagemaker.py- Python 3.8+
- PyQt6 6.5+
- Windows 10/11 (Linux/macOS parcial)
Archivo → Nuevo Proyecto → Seleccionar carpeta
- Modo Bundle: Switch para cambiar entre "Empaquetar" y "Compilar Bundle"
- Método de Blindado: Simple vs Super Blind
- Opciones adicionales: Firma digital, compresión, icono personalizado
Click en "Compilar" (verde) o "Compilar Bundle y Firmar" (azul)
- Output en
dist/ - Listo para subir a GitHub Releases
Cuando compilas un proyecto, Packagemaker:
- Análisis: Lee scripts candidatos y detecta clases
- Extracción: Mueve clases a
lib/_class/ScriptName/ - Modificación: Actualiza imports en scripts originales
- Generación: Crea
lib/__init__.pycon imports consolidados - Minificación: Reduce tamaño de código
- Empaquetado: Genera
.iflappb(Simple Blind) o estructura separada (Super Blind) - Firma: Opcionalmente firma el paquete
mi-proyecto/
├── app/
│ ├── main.py # Script candidato original
│ └── icon.ico
├── lib/
│ ├── _class/
│ │ └── main/
│ │ ├── __init__.py
│ │ └── MiClase.py # Clase extraída
│ ├── _bundle_main.py # Importador de clases
│ └── __init__.py # Consolidado
├── manifest.yaml # Metadatos del proyecto
├── manifest.relx # Binario precompilado
└── dist/
└── mi-app-v1.0.iflappb # Paquete final
project:
name: "Mi Aplicación"
version: "1.0.0"
author: "Tu Nombre"
build:
mode: "bundle" # o "standalone"
blind_method: "simple" # o "super"
compress: true
sign: true
android:
api_level: 33
permissions:
- INTERNET
- STORAGEAsegúrate de que tus scripts tengan el bloque:
if __name__ == '__main__':
main()Verifica que las clases estén definidas en el nivel superior del archivo, no dentro de funciones.
Revisa que lib/__init__.py incluya todos los imports necesarios sin duplicados.
Packagemaker utiliza Leviathan-UI como base visual:
| Componente | Uso |
|---|---|
CustomTitleBar |
Barra de título unificada |
WipeWindow |
Efectos visuales consistentes |
LeviathanProgressBar |
Indicadores de progreso |
InmersiveSplash |
Pantallas de carga |
docs/getting-started.md- Guía de inicio rápidodocs/build-system.md- Sistema de compilacióndocs/android-deployment.md- Despliegue AndroidFAQ.md- Preguntas frecuentes
MIT License - Libre para uso personal y comercial.
Desarrollado con ❤️ usando Python + PyQt6 + Leviathan-UI