Iconos y metadatos
La identidad de una app son unas pocas cosas: su nombre, su icono, su versión, quién la publica y, en
macOS, su identificador de paquete. Todas se fijan en [tool.pyzed.build] de pyproject.toml, a mano o desde el
diálogo Exportar de Pyzed Design, y pyzed build las escribe donde las busca
cada sistema.
Nombre, versión y datos
Sección titulada «Nombre, versión y datos»[tool.pyzed.build]name = "Shop" # Shop.exe, Shop.app, dist/Shop/version = "1.2.0" # por defecto: la versión de [project]publisher = "Acme"identifier = "com.acme.shop" # por defecto: com.<editor>.<nombre>description = "Punto de venta" # por defecto: la descripción de [project]copyright = "© 2026 Acme"| Qué | Windows | macOS | Linux |
|---|---|---|---|
name |
Shop.exe, el nombre del producto |
Shop.app, CFBundleDisplayName |
El ejecutable |
version |
Versión del archivo y del producto (pestaña Detalles) | CFBundleShortVersionString y CFBundleVersion |
- |
publisher |
Nombre de la empresa | - | - |
identifier |
- | CFBundleIdentifier |
El id de la app de sus ventanas (mira El icono de la ventana) |
description |
Descripción del archivo | - | - |
copyright |
Copyright legal | NSHumanReadableCopyright |
- |
Con PyInstaller, pyzed build escribe un archivo de versión de Windows (build/pyzed/version.txt) y completa el
Info.plist del paquete tras compilar; Nuitka recibe los mismos valores como opciones.
Usa como identifier un dominio invertido que te pertenezca. macOS guarda las preferencias y los permisos de
privacidad de la app con él, así que no lo cambies entre versiones.
El título de la ventana no va aquí: es el Título del formulario en el diseñador, o title de tu pz.App.
Si tu app muestra su versión o busca actualizaciones, guarda también la versión en tu
código, por ejemplo en el __init__.py de tu paquete, y actualízala junto con pyproject.toml:
__version__ = "1.2.0"El icono
Sección titulada «El icono»Dale a icon una imagen cuadrada, idealmente un PNG de 1024 × 1024 píxeles con fondo transparente:
[tool.pyzed.build]icon = "assets/icon.png"pyzed build crea a partir de ella todos los archivos que piden los sistemas, con el código de imagen del propio
Pyzed (sin Pillow, sips ni iconutil), en build/pyzed/:
| Archivo | Tamaños dentro | Para |
|---|---|---|
app-icon.ico |
16, 20, 24, 32, 40, 48, 64, 128, 256 px | El .exe de Windows: el Explorador, la barra de tareas, Alt+Tab |
app-icon.icns |
de 16 a 1024 px, con tamaños Retina | El paquete de macOS: el Finder y el Dock |
app-icon.png |
256 px | El icono de las ventanas de la app (va dentro de la app) |
Los tamaños pequeños salen de reducir la imagen grande. Si las versiones de 16 y 32 píxeles se ven borrosas, dibuja tú una versión más simple para ellas (abajo) o usa un diseño con trazos gruesos. El diálogo Exportar muestra una vista previa de cada tamaño.
Un archivo .ico o .icns dado como icon se usa tal cual, para su sistema.
Crear tú los archivos de icono
Sección titulada «Crear tú los archivos de icono»Para controlar cada tamaño, crea los archivos con tu herramienta favorita a partir de un PNG de 1024 × 1024:
from PIL import Image # pip install pillow
Image.open("icon.png").save("icon.ico", sizes=[(s, s) for s in (16, 24, 32, 48, 64, 128, 256)])mkdir icon.iconsetfor s in 16 32 128 256 512; do sips -z $s $s icon.png --out icon.iconset/icon_${s}x${s}.png sips -z $((s*2)) $((s*2)) icon.png --out icon.iconset/icon_${s}x${s}@2x.pngdoneiconutil -c icns icon.iconset # escribe icon.icns (solo macOS)El icono de la ventana
Sección titulada «El icono de la ventana»Los iconos del .exe y de la .app son los del archivo. Una app empaquetada también da el icono a sus
ventanas (la barra de título y la barra de tareas en Windows y Linux): el lanzador fija pz.Window.icon a
app-icon.png. macOS siempre muestra en el Dock el icono del paquete.
En tu propio código, cualquier ventana puede tener su icono, una ruta a una imagen o sus bytes:
import pyzed as pz
class Shop(pz.App): icon = "assets/icon.png" app_id = "com.acme.shop" # Linux: coincide con el archivo .desktopEn Linux, app_id da nombre a la app ante el escritorio. Wayland toma el icono de la barra de tareas y del dock del
archivo .desktop cuyo nombre coincide (com.acme.shop.desktop, mira
Linux); X11 usa icon directamente.
Propiedades del archivo en Windows a mano
Sección titulada «Propiedades del archivo en Windows a mano»Para usar tu propio recurso de versión en lugar del generado (más campos, otros idiomas), captura uno de un .exe
existente con pyi-grab_version y pásaselo a PyInstaller:
[tool.pyzed.build.pyinstaller]args = ["--version-file", "assets/version.txt"]Las rutas de args llegan a PyInstaller sin cambios, y PyInstaller escribe su archivo spec en build/pyzed/: si no
encuentra el archivo, usa su ruta absoluta.