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:
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user