Empaqueta tu app
Tu app funciona en tu máquina. Ahora quieres mandarla a alguien que no tiene Python, no sabe qué es pip y debería
poder abrirla con doble clic. Este tutorial lleva una app desde una carpeta de proyecto hasta un archivo que
puedes compartir, y luego a una compilación automática para los tres sistemas.
| Objetivo | Tiempo | Nivel | Necesitas |
|---|---|---|---|
| Una app que se abre con doble clic en Windows, macOS y Linux | 30 minutos (más el tiempo de compilación) | Avanzado · línea de comandos | uv instalado, una cuenta de GitHub para la última parte |
Qué vas a aprender
Sección titulada «Qué vas a aprender»- Crear (o convertir en) un proyecto de Pyzed: la estructura que espera
pyzed build. - Generar un ejecutable independiente para el sistema en el que estás.
- Añadir un icono, archivos de datos y un nombre, y leer los archivos incluidos desde tu código.
- Compilar todas las plataformas a la vez con GitHub Actions, y por qué importa firmar.
-
Parte de un proyecto.
pyzed buildempaqueta un proyecto de uv cuyo formulario o script principal está definido enpyproject.toml. Crea uno (o usa Nuevo proyecto en la ventana de bienvenida de Pyzed Design):Windows, macOS y Linux uvx --from pyzed-ui pyzed new my-appcd my-appuv run pyzed run # pruébalamacOS y Linux python -m pip install pyzed-uipyzed new my-app # usa uv por debajo: instálalo primerocd my-appuv run pyzed runWindows (PowerShell) python -m pip install pyzed-uipyzed new my-appcd my-appuv run pyzed runCon Pyzed ya instalado python -m pyzed new my-app¿Ya tienes un proyecto de uv? Ejecuta
pyzed initdentro. La interfaz vive enui/(formularios y sus manejadores) y el backend ensrc/my_app/. -
Compila para este ordenador. Desde la carpeta del proyecto:
Windows, macOS y Linux uv run pyzed buildmacOS y Linux source .venv/bin/activatepyzed buildWindows (PowerShell) .venv\Scripts\Activate.ps1pyzed buildDentro del entorno del proyecto python -m pyzed buildLa primera compilación tarda un minuto o dos. El resultado va a
dist/:Compilado en Obtienes Compártelo como Windows dist\my-app\my-app.exeUn zip de la carpeta, o un instalador (Inno Setup, WiX) macOS dist/my-app.appUn zip o un .dmg, firmado y notarizadoLinux dist/my-app/my-appUn tarball, AppImage, .debo Flatpak -
Pruébala como lo haría un usuario. Copia la carpeta a otro sitio (o a otra máquina sin Python) y abre el ejecutable. Si se cierra enseguida, compila con
--consolepara ver el error. -
Nombre, icono y archivos de datos. Añade una tabla
[tool.pyzed.build]apyproject.toml:pyproject.toml [tool.pyzed.build]name = "Notes" # el nombre del ejecutableicon = "assets/icon.ico" # .ico en Windows, .icns en macOSinclude = ["assets", "data/help.md"] # archivos que tu app lee al ejecutarseDentro del paquete, busca esos archivos desde la raíz del paquete:
import sysfrom pathlib import PathROOT = Path(getattr(sys, "_MEIPASS", Path(__file__).resolve().parents[1]))help_text = (ROOT / "data" / "help.md").read_text() -
¿Un archivo o una carpeta?
pyzed build --onefilecrea un único archivo, práctico para enviar, pero más lento al arrancar (se descomprime cada vez) y marcado más a menudo por los antivirus. Una carpeta más un instalador es la opción más segura para una versión real. -
Todas las plataformas desde CI. Una compilación solo funciona en el sistema en el que se hizo, así que necesitas máquinas Windows, macOS y Linux. GitHub las tiene:
Ventana de terminal uv run pyzed build --workflow # escribe .github/workflows/build.ymlgit add .github && git commit -m "Build on every platform" && git pushgit tag v1.0.0 && git push --tags # una etiqueta v* lanza la compilaciónCada ejecución guarda las tres carpetas
dist/como artefactos para descargar.
Siguiente
Sección titulada «Siguiente»- Compilar y distribuir: qué se incluye, cada opción y solución de problemas.
- Construye una app con el agente de IA.