Não consigo executar meu aplicativo .exe feito pelo pyinstaller com PyQt5 no Windows 10?

Não consigo executar meu aplicativo .exe feito pelo pyinstaller com PyQt5 no Windows 10?

No Win10 64 bits instalei PyQt5_5.4.1 para Python3.4.3. Preciso do 3.4.3 para oferecer suporte a clientes XP e esta é a última versão que pode ser instalada no XP. PyQt5 se instalou na pasta python3.4.3 C:\Python34e posso vê-lo em PATHC:\Python34\Lib\site-packages\PyQt5

Quando executo meu script com python myscript.pytudo bem, a janela da GUI é exibida. No entanto, quando tento executar um arquivo .exe daquele script criado pyinstallerassim, pyinstaller myscript.py --onefilerecebo um erro:

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 que tenho em myscript.py:

from PyQt5 import QtWidgets, QtCore, QtGui

Existe uma solução para este problema? Tentei reinstalar o PyQt5, mas sem sorte.

Responder1

Crie um arquivo hook no diretório do seu projeto. Digagancho-PyQt5.pypor exemplo:

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

No arquivo de especificação do Pyinstaller, adicione um parâmetro

hookspath=['./']

para o objeto de análise:

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

ou especifique um argumento "--additional-hooks-dir" para a linha de comando se você usar o PyInstaller diretamente.

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

informação relacionada