Instalación
Pyzed necesita Python 3.10 o superior.
Desde PyPI
Sección titulada «Desde PyPI»uv add pyzed-ui # en un proyecto de uvuv run python main.pypython3 -m venv .venv # una vez por proyectosource .venv/bin/activatepip install pyzed-uipython main.pypy -m venv .venv # una vez por proyecto.venv\Scripts\Activate.ps1pip install pyzed-uipython main.pypython3 -m pip install pyzed-uipython3 main.pypy -m pip install pyzed-uipy main.py- uv gestiona el proyecto por ti: Crear un proyecto empieza una app nueva así, y es lo que usa el resto de esta documentación. Instálalo desde docs.astral.sh/uv.
- pip instala en un entorno virtual (
.venv), una carpeta que separa los paquetes de este proyecto del resto de tu equipo. Actívalo en cada terminal nueva antes de ejecutar tu app. - python instala en el Python de tu equipo, sin nada más que aprender. En Windows,
pyes el lanzador de Python que trae el instalador de python.org; en macOS y Linux el comando suele serpython3.
El paquete se llama pyzed-ui en PyPI (el nombre pyzed ya estaba ocupado), pero se importa como pyzed.
Los wheels precompilados para Linux, macOS y Windows incluyen el motor de Rust, así que no
necesitas compilar nada.
Desde el código fuente
Sección titulada «Desde el código fuente»uv add git+https://github.com/albakore/pyzedpip install git+https://github.com/albakore/pyzed # con .venv activadopython3 -m pip install git+https://github.com/albakore/pyzedpy -m pip install git+https://github.com/albakore/pyzedEsto compila la extensión de Rust, así que necesitas Rust 1.88 o superior (rustup update actualiza uno más antiguo) y las
dependencias de sistema de tu plataforma:
# Debian / Ubuntusudo apt install build-essential libxkbcommon-x11-0curl https://sh.rustup.rs -sSf | shxcode-select --installcurl https://sh.rustup.rs -sSf | shInstala Rust con rustup y las Build Tools for Visual Studio (carga de trabajo “Desarrollo para el escritorio con C++”).
Desarrollar Pyzed
Sección titulada «Desarrollar Pyzed»Para trabajar en Pyzed, clona el repositorio. Necesitas Rust 1.88 o superior (rustup update actualiza uno más antiguo) y las
dependencias del sistema de arriba.
git clone https://github.com/albakore/pyzedcd pyzeduv sync # crea .venv, compila el núcleo de Rust (release) e instala pyzed editableuv run pytest testsuv run python examples/gallery.pygit clone https://github.com/albakore/pyzedcd pyzedpython3 -m venv .venvsource .venv/bin/activatepip install maturin pytestmaturin develop --release # repítelo después de cambiar código de Rustpytest testspython examples/gallery.pygit clone https://github.com/albakore/pyzedcd pyzedpy -m venv .venv.venv\Scripts\Activate.ps1pip install maturin pytestmaturin develop --release # repítelo después de cambiar código de Rustpytest testspython examples/gallery.pyuv synctambién instala el grupotest(maturin y pytest). La primera compilación tarda unos minutos.- Los cambios en Python (
python/pyzed/) se usan directamente. - Con uv, el siguiente
uv runouv syncdespués de cambiar código de Rust (src/) recompila el núcleo solo; con pip, vuelve a ejecutarmaturin develop --release. Usa--release: la build de depuración es mucho más lenta al usar la ventana. uv sync --extra designerañade ty y ruff para el editor de código del diseñador.- En Linux, una build desde el código no suena por defecto, así que compila sin paquetes extra del sistema:
pyzed.audiorenderiza offline y con su reloj silencioso. Para dispositivos de audio y MIDI, instala las cabeceras de ALSA (sudo apt install libasound2-dev pkg-config; Fedora:sudo dnf install alsa-lib-devel) y compila conmaturin develop --release --features alsa(con uv, deja exportadoMATURIN_PEP517_ARGS="--features alsa"y ejecutauv sync --reinstall-package pyzed-ui).
Linux y WSL
Sección titulada «Linux y WSL»Pyzed ajusta algunas cosas antes de abrir la primera ventana:
- Silencia los avisos del driver de la GPU. Mesa imprime mensajes como
libEGL warning: failed to get driver name for fd -1oMESA: error: ZINK: failed to choose pdevmientras el renderer busca un backend que funcione. No afectan a nada, así que Pyzed defineEGL_LOG_LEVEL=fatalyMESA_LOG=null. ConPYZED_GPU_LOGS=1vuelven a aparecer. - En WSL usa X11. El compositor Wayland de WSLg corta la conexión al maximizar o
redimensionar una ventana, y eso imprime
Io error: Broken pipe (os error 32). En WSL, Pyzed usa X11 (a través de XWayland). ConPYZED_WAYLAND=1se mantiene Wayland. - En WSL abre las páginas en el navegador de Windows. WSL no suele tener navegador propio,
así que los inicios de sesión (los de los agentes de IA), la documentación y los demás enlaces
se abren en tu navegador predeterminado de Windows. Las páginas que vuelven a Pyzed en
127.0.0.1siguen llegando gracias al reenvío de localhost de WSL. Los programas que necesitan una terminal, como el inicio de sesión de Claude Code, se abren en Windows Terminal (o en una consola) dentro de tu distribución de WSL. ConBROWSEReliges el navegador tú.
Las variables que definas tú (EGL_LOG_LEVEL, MESA_LOG, WAYLAND_DISPLAY, BROWSER…) nunca se tocan.
WSL: ventanas nativas de Windows
Sección titulada «WSL: ventanas nativas de Windows»En WSL, Pyzed abre cada ventana como un programa nativo de Windows, no a través de WSLg: pyzed design,
pyzed run, pyzed dev, tus scripts que llaman a pz.run, Ejecutar en Pyzed Design y las vistas en vivo de los
agentes de IA. La ventana es una ventana de Windows de verdad, dibujada con los drivers de GPU de Windows, así que
va más rápida y se acopla, escala y aparece en la barra de tareas como cualquier otra aplicación. Tu código y tu
proyecto siguen en WSL: sigues editando en Linux (en Zed, por ejemplo) y la recarga en caliente recoge cada
guardado.
Solo necesita uv en Windows. Pyzed puede instalarlo por ti, desde WSL:
uv run pyzed windows setup # instala uv en Windows si falta y prepara el proyectouv run pyzed windows # muestra qué se usa y dóndeCómo funciona:
- Windows lee el proyecto a través de
\\wsl.localhost\<distribución>\...y arranca en la misma carpeta. - Windows tiene su propio entorno, en
%LOCALAPPDATA%\pyzed\wsl\, con la misma versión de Python, las dependencias del proyecto en las versiones deuv.lock, lo que necesita el editor (agentes de IA, MCP, servidores de lenguaje) y la wheel depyzed-uide la misma versión (siempre una wheel ya compilada: en Windows no se compila nada). El.venvdel proyecto sigue siendo el de Linux. Se crea la primera vez (unos segundos) y de nuevo solo cuando cambian las dependencias. - El comando en WSL espera a la ventana: su salida, la consola de Pyzed Design y el código de salida son los de la aplicación, y al detenerlo (Detener, Ctrl+C) la ventana se cierra.
Sin uv (ni el lanzador py de Python) en Windows, las ventanas se abren por WSLg como antes, con un aviso que
explica cómo prepararlo. Para usar siempre WSLg, define PYZED_WINDOWS=0 o añade --wslg a pyzed design, run
o dev.
| Variable | Qué hace |
|---|---|
PYZED_WINDOWS=0 |
Abre las ventanas por WSLg. |
PYZED_WINDOWS_ENV=NOMBRE,NOMBRE |
Más variables para la aplicación en Windows (claves de API…). Las PYZED_* siempre pasan. |
PYZED_WINDOWS_WHEEL |
Ruta o URL de la wheel de pyzed-ui para Windows (ver abajo). |
PYZED_WINDOWS_TARGET |
Target de Rust para el núcleo de un checkout (x86_64-pc-windows-gnu o -msvc). |
Cuando Pyzed Design corre así en Windows, todo lo que inicia corre también en Windows: Ejecutar, el script del
proyecto, las vistas previas y el audio usan los dispositivos de Windows. Crear o clonar un proyecto en una carpeta
de WSL usa el uv y el git de Linux, así que el proyecto y su .venv siguen siendo de Linux.
Comprobar la instalación
Sección titulada «Comprobar la instalación»uv run python -c "import pyzed; print(pyzed.__version__)"uv run pyzed icons folderpython -c "import pyzed; print(pyzed.__version__)"pyzed icons folderpython3 -c "import pyzed; print(pyzed.__version__)"python3 -m pyzed icons folderpy -c "import pyzed; print(pyzed.__version__)"py -m pyzed icons folderLa primera línea muestra la versión; la segunda, los nombres de iconos que contienen “folder”.