Не могу запустить приложение .exe, созданное с помощью pyinstaller, с PyQt5 на Windows 10?

Не могу запустить приложение .exe, созданное с помощью pyinstaller, с PyQt5 на Windows 10?

На Win10 64bit я установил PyQt5_5.4.1 для Python3.4.3. Мне нужна версия 3.4.3 для поддержки клиентов XP, и это последняя версия, которую можно установить на XP. PyQt5 установился в папку python3.4.3, C:\Python34и я вижу его в PATHC:\Python34\Lib\site-packages\PyQt5

Когда я запускаю свой скрипт, python myscript.pyвсе в порядке, появляется окно gui. Однако, когда я пытаюсь запустить .exe-файл из этого скрипта, созданного таким образом, pyinstallerя pyinstaller myscript.py --onefileполучаю ошибку:

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.

Этот код у меня есть в myscript.py:

from PyQt5 import QtWidgets, QtCore, QtGui

Есть ли решение этой проблемы? Я пробовал переустановить PyQt5, но безуспешно.

решение1

Создайте файл hook в каталоге вашего проекта. Назовите егохук-PyQt5.pyнапример:

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

В файле спецификации Pyinstaller добавьте параметр

hookspath=['./']

к объекту анализа:

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

или укажите аргумент "--additional-hooks-dir" в командной строке, если вы используете PyInstaller напрямую.

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

Связанный контент