¿No puedo ejecutar mi aplicación .exe creada por pyinstaller con PyQt5 en Windows 10?

¿No puedo ejecutar mi aplicación .exe creada por pyinstaller con PyQt5 en Windows 10?

En Win10 de 64 bits instalé PyQt5_5.4.1 para Python3.4.3. Necesito la 3.4.3 para admitir clientes XP y esta es la última versión que se puede instalar en XP. PyQt5 se instaló en la carpeta python3.4.3 C:\Python34y puedo verlo en PATHC:\Python34\Lib\site-packages\PyQt5

Cuando ejecuto mi script y python myscript.pytodo está bien, se muestra la ventana GUI. Sin embargo, cuando intento ejecutar un archivo .exe desde ese script creado pyinstallerasí, pyinstaller myscript.py --onefileaparece un error:

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.

Este código lo tengo en myscript.py:

from PyQt5 import QtWidgets, QtCore, QtGui

¿Hay alguna solución para este problema? Intenté reinstalar PyQt5 pero no tuve suerte.

Respuesta1

Cree un archivo de enlace en el directorio de su proyecto. Nombralogancho-PyQt5.pyPor ejemplo:

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')

En el archivo de especificaciones de Pyinstaller, agregue un parámetro

ruta de gancho=['./']

al objeto de análisis:

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

o especifique un argumento "--additional-hooks-dir" para la línea de comando si usa PyInstaller directamente.

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

información relacionada