fix: le .exe Windows demarrait sans plugin de plateforme Qt

Le hook PySide6 de PyInstaller importe QtCore pour localiser les plugins Qt.
Depuis Qt 6.10, Qt6Core.dll est lie a l'ICU de Windows (icuuc.dll, System32),
que Wine n'implemente pas : l'import echouait, le hook ne collectait aucun
plugin, et le binaire produit refusait de demarrer sous Windows avec
« could not initialize Qt platform plugin "windows" ».

- La build Wine epingle PySide6<6.10 (PYSIDE6_CONSTRAINT pour surcharger).
- Verification avant compilation que PySide6 s'importe reellement.
- Verification apres compilation que qwindows.dll est embarque.
- Reinstallation des dependances declenchee par empreinte de requirements.txt
  et de la contrainte, au lieu de la seule presence de PyInstaller.

Binaire verifie sous Wine : GUI (fenetre a trois onglets) et CLI OK, 45 Mo.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-09-08 22:46:00 +02:00
co-authored by Claude Opus 5
parent 599192fd67
commit 59b6c75942
3 changed files with 59 additions and 7 deletions
+8 -3
View File
@@ -82,9 +82,14 @@ incrémentaux.
Sur une machine Windows, `packaging/build_windows.bat` fait le même travail
nativement.
> Le `.exe` s'appuie sur l'ICU fourni par le système (`icuuc.dll` dans
> `System32`), présent depuis Windows 10 1703 et Windows Server 2019. Il ne
> peut pas être testé sous Wine, qui ne fournit pas cette bibliothèque.
La build Wine épingle **Qt 6.9** (`PySide6<6.10`) : à partir de Qt 6.10,
`Qt6Core.dll` dépend de l'ICU fourni par Windows (`icuuc.dll` dans `System32`),
que Wine n'implémente pas. PySide6 y devient inimportable — et le hook PySide6
de PyInstaller, qui importe QtCore pour localiser les plugins Qt, échoue alors
*silencieusement* et produit un `.exe` sans plugin de plateforme, qui refuse de
démarrer sous Windows (« could not initialize Qt platform plugin windows »). Le
script vérifie donc, avant compilation, que PySide6 s'importe, et après
compilation, que `qwindows.dll` est bien embarqué.
## Publication