Un ejecutable único que lleva el curso entero dentro y lo abre en tu navegador sin conexión: las 176 clases con el código de los diez lenguajes resaltado, los 136 anexos de primos, los 136 de lenguajes vivos, las 60 fichas de lenguaje del Atlas, las rutas, el glosario, el buscador y la autoevaluación.
El ejecutable trae empaquetado el sitio estático (site/, el mismo que se publica en
GitHub Pages), levanta un servidor solo en 127.0.0.1 y abre esa dirección en tu
navegador. Una ventana pequeña queda de fondo con el recuento de lo que hay dentro y los
accesos directos.
[ejecutable] → sirve site/ en http://127.0.0.1:8765 → tu navegador muestra el curso
Por qué un servidor local y no abrir los archivos con file://: el buscador del portal
pide busqueda.json con fetch, y los navegadores bloquean esa petición bajo file://
por política de origen. Con un servidor de loopback el portal funciona completo — buscador
incluido — y nada se expone a la red: el socket escucha en la interfaz local, no en la
tarjeta de red.
Baja PolyglotProgrammingLabs-windows.exe del
último release
y ejecútalo. No necesita instalación, ni Python, ni permisos de administrador.
Windows SmartScreen avisará de que el editor no está verificado: es lo normal en un ejecutable sin firma de código comercial. Más información → Ejecutar de todas formas. El SHA256 publicado en el release permite comprobar que el archivo es el mismo que compiló CI:
Get-FileHash .\PolyglotProgrammingLabs-windows.exe -Algorithm SHA256
Funciona igual en Windows, macOS y Linux, con Python 3.10 o superior y sin dependencias:
python scripts/generar_sitio.py # genera site/ desde las clases
python apps/desktop/main.py
Opciones: --puerto N para elegir puerto, --no-abrir para no lanzar el navegador y
--no-gui para dejar solo el servidor (útil por SSH o en un contenedor).
pip install pyinstaller
python scripts/generar_sitio.py
pyinstaller --onefile --windowed --name PolyglotProgrammingLabs \
--add-data "site;site" apps/desktop/main.py
En macOS y Linux el separador de --add-data es : en vez de ; ("site:site").
Comprobación anti-vacío antes de distribuirlo — un ejecutable que arranca no prueba que lleve el curso dentro:
python apps/desktop/verificar_exe.py dist/PolyglotProgrammingLabs.exe
Cuenta dentro del binario las 176 páginas de clase, los 136 anexos de primos, los 136 de lenguajes vivos y las 60 fichas del Atlas; falla si falta cualquiera de los cuatro recuentos. Es el mismo control que ejecuta el workflow de build.
python scripts/verificar_equivalencia.py o en CI.