# Installe Zonza sur Windows. # # powershell -ExecutionPolicy Bypass -File .\install.ps1 # # Cree l'environnement, installe UNIQUEMENT ce qui sert a Windows (les marqueurs # de requirements.txt ecartent MLX et pyobjc), pose le lancement au demarrage, # puis lance le diagnostic. # # AVERTISSEMENT D'HONNETETE : ce script n'a JAMAIS ete execute sur une machine # Windows. Il a ete ecrit depuis un Mac, d'apres la documentation. Le diagnostic # de la derniere etape est justement la pour dire ce qui marche et ce qui casse. $ErrorActionPreference = "Stop" Set-Location -Path $PSScriptRoot Write-Host "-> Verification de Python..." $py = Get-Command python -ErrorAction SilentlyContinue if (-not $py) { throw "Python introuvable. Installe-le depuis python.org, en cochant 'Add python.exe to PATH'." } $version = & python -c "import sys; print('.'.join(map(str, sys.version_info[:3])))" Write-Host " Python $version" & python -c "import sys; sys.exit(0 if sys.version_info >= (3, 11) else 1)" if ($LASTEXITCODE -ne 0) { throw "Python 3.11 minimum requis, trouve $version." } if (-not (Test-Path ".venv")) { Write-Host "-> Creation de l'environnement..." & python -m venv .venv } else { Write-Host "-> Environnement deja present, on le reutilise." } Write-Host "-> Installation des dependances de CETTE machine..." & .\.venv\Scripts\python.exe -m pip install --quiet --upgrade pip & .\.venv\Scripts\python.exe -m pip install --quiet -r requirements.txt if ($LASTEXITCODE -ne 0) { throw "L'installation des dependances a echoue." } Write-Host "-> Lancement au demarrage..." # pythonw.exe : sans lui, une console noire resterait ouverte en permanence. $demarrage = [Environment]::GetFolderPath("Startup") $raccourci = Join-Path $demarrage "Zonza.lnk" $shell = New-Object -ComObject WScript.Shell $lien = $shell.CreateShortcut($raccourci) $lien.TargetPath = (Resolve-Path ".\.venv\Scripts\pythonw.exe").Path $lien.Arguments = '"' + (Resolve-Path ".\lanceur_qt.py").Path + '"' $lien.WorkingDirectory = $PSScriptRoot $lien.Description = "Zonza - dictee vocale locale" $lien.Save() Write-Host " $raccourci" Write-Host "-> Diagnostic..." & .\.venv\Scripts\python.exe app.py --diagnostic if ($LASTEXITCODE -ne 0) { Write-Host "" Write-Host "Le diagnostic signale un probleme. Rien n'est casse : les lignes" Write-Host "ci-dessus disent laquelle des epreuves a echoue." exit 1 } Write-Host "" Write-Host "Installe." Write-Host "" Write-Host "Usage : Ctrl+Alt+D pour demarrer et arreter la dictee." Write-Host "Journal : %LOCALAPPDATA%\Zonza\Zonza.log" Write-Host "Lancer maintenant, sans redemarrer : .\.venv\Scripts\pythonw.exe lanceur_qt.py" Write-Host "" Write-Host "Si le raccourci ne repond pas, relance le diagnostic :" Write-Host " .\.venv\Scripts\python.exe app.py --diagnostic"