Kann meine mit Pyinstaller erstellte EXE-App mit PyQt5 unter Windows 10 nicht ausführen?

Kann meine mit Pyinstaller erstellte EXE-App mit PyQt5 unter Windows 10 nicht ausführen?

Auf Win10 64bit habe ich PyQt5_5.4.1 für Python3.4.3 installiert. Ich brauche 3.4.3 zur Unterstützung von XP-Clients und dies ist die letzte Version, die auf XP installiert werden kann. PyQt5 hat sich selbst im Ordner python3.4.3 installiert C:\Python34und ich kann es in PATH sehenC:\Python34\Lib\site-packages\PyQt5

Wenn ich mein Skript ausführe, python myscript.pyist alles in Ordnung, das GUI-Fenster wird angezeigt. Wenn ich jedoch versuche, eine EXE-Datei aus diesem Skript auszuführen, das wie pyinstallerfolgt erstellt wurde, pyinstaller myscript.py --onefileerhalte ich einen Fehler:

Qt: Untested Windows version 10.0 detected!
This application failed to start because it 
could not find or load the Qt platform plugin "windows".

Reinstalling the application may fix this problem.

Diesen Code habe ich in myscript.py:

from PyQt5 import QtWidgets, QtCore, QtGui

Gibt es eine Lösung für dieses Problem? Ich habe versucht, PyQt5 neu zu installieren, aber ohne Erfolg.

Antwort1

Erstellen Sie eine Hook-Datei in Ihrem Projektverzeichnis. Nennen Sie siehook-PyQt5.pyZum Beispiel:

from PyInstaller.utils.hooks import qt_plugins_binaries
# Fixed the issue: could not find or load the Qt platform plugin "windows".
binaries = qt_plugins_binaries('platforms', 'PyQt5')

Fügen Sie in der Pyinstaller-Spezifikationsdatei einen Parameter hinzu

Hookspfad=['./']

zum Analyseobjekt:

a = Analysis(
    ...
    hookspath=['./'],
    ...
)

oder geben Sie ein Argument „--additional-hooks-dir“ zur Befehlszeile an, wenn Sie PyInstaller direkt verwenden.

python -m PyInstaller --additional-hooks-dir="./" <your-script>

verwandte Informationen