Я получаю сообщение об ошибке "не смог найти или загрузить окна плагинов платформы Qt" при использовании matplotlib в PyCharm.
Как я могу это решить?
Я получаю сообщение об ошибке "не смог найти или загрузить окна плагинов платформы Qt" при использовании matplotlib в PyCharm.
Как я могу это решить?
У меня была такая же проблема с Anaconda3 4.2.0 и 4.3.0.1 (64-битная). Когда я попытался запустить простую программу, которая использует matplotlib, я получил это сообщение об ошибке:
This application failed to start because it could not find or load the Qt platform plugin "windows"
Reinstalling the application may fix this problem.
Переустановка не исправила это.
Помогло следующее (найдено здесь): найдите каталог Anaconda и установите подкаталог Library\plugins
(здесь c:\ProgramData\Anaconda3\Library\plugins
) в качестве переменной среды QT_PLUGIN_PATH
в Панели управления/Система/Расширенные настройки системы/Переменные среды,
После установки переменной вам может потребоваться перезапустить PyCharm, если изменение не имеет немедленного эффекта.
И вуаля!
Обновление: Несмотря на то, что после этого работала командная строка Python, TexWorks (которая также использует Qt) выдает сообщение об ошибке, очень похожее на это. Установка QT_PLUGIN_PATH
в каталог, содержащий библиотеки Qt библиотеки TexWorks (здесь C:\Users\chris\AppData\Local\Programs\MiKTeX 2.9\miktex\bin\x64
), исправила проблему для обеих программ.
Я обнаружил, что это было вызвано наличием двоичных файлов MiKTeX в моей переменной PATH; и были найдены неправильные Qt dll. Мне просто нужно было переставить записи PATH.
(Dependency Walker - такой полезный инструмент.)
У меня была похожая проблема с PyCharm, где все отлично работало при основном запуске, но не в отладчике, получая то же сообщение об ошибке. Это произошло для меня, потому что я переместил установку Anaconda в другой каталог. Отладчик запускает и проверяет файл qt.conf, который находится в том же месте, что и python. Это местоположение можно найти, запустив import sys; print sys.executable
import sys; print sys.executable
. Я нашел это решение через кучу поисков в сети, и оно было глубоко здесь закопано. Файл qt.conf должен иметь правильные пути для работы отладчика.
Мои файлы qt.conf в блокноте выглядят так:
[Paths]
Prefix = E:/python/Anaconda3_py35/Library
Binaries = E:/python/Anaconda3_py35/Library/bin
Libraries = E:/python/Anaconda3_py35/Library/lib
Headers = E:/python/Anaconda3_py35/Library/include/qt
Если установлены PyQt5
и PySide2
, я решил проблему
Скопируйте следующие файлы
\Anaconda3\Lib\site-packages\PySide2\plugins\platforms\qminimal.dll
\Anaconda3\Lib\site-packages\PySide2\plugins\platforms\qoffscreen.dll
\Anaconda3\Lib\site-packages\PySide2\plugins\platforms\qwindows.dll
в
\Anaconda3\Library\plugins\platforms\
Я попробовал следующее в подсказке Anaconda и решил эту проблему:
conda удалить qt
conda удалить pyqt
conda install qt
conda install pyqt
Консоль или отладчик Pycharm, показывающая эту проблему - Не удалось найти или загрузить окна плагинов платформы Qt
Причина - Файл exe python может быть расположен в другом месте для интерпретатора Pycharm, вы можете вручную выбрать его в файле, настройках, интерпретаторе.
Решение -
Установите рабочий каталог. Файл → Настройки- > Сборка, выполнение, развертывание → Консоль → Консоль Python → Рабочий каталог. Установите его в родительский каталог, где присутствуют все ваши коды.
Открыть панель управления → Параметры системы → Расширенные настройки системы → Переменные окружения → Новые. Установить имя переменной: QT_PLUGIN_PATH, переменная директория: Пользователи \\Appdata\Local\Continuum\Anaconda2\Library\plugins
Перезапустите Pycharm.
Если вы хотите визуализировать ваши матплотлипы альтернативным способом, используйте другой бэкэнд, который генерирует графики, диаграммы и т.д.
import matplotlib matplotlib.use('TKAgg')
Это сработало для меня.
Я нашел решение, которое сработало для меня, перейдите по ссылке, приведенной ниже. Это решение включает фрагмент кода, который нужно добавить перед импортом любых модулей из пакета Pyside2 или PyQt5.
Фрагмент кода (также доступен в ссылке)
import os
import PySide2
dirname = os.path.dirname(PySide2.__file__)
plugin_path = os.path.join(dirname, 'plugins', 'platforms')
os.environ['QT_QPA_PLATFORM_PLUGIN_PATH'] = plugin_path
from PySide2.QtWidgets import *
'''
Your code goes here
'''
Это решение работает для модулей PyQt5 и PySide2. Я не знаю, уместно это или нет, но я уже добавил в систему переменную среды QT_PLUGIN_PATH.
#Вышеупомянутое решение позволило мне протестировать скрипты PySide2 в IDLE. Тем не менее, я столкнулся с тем же журналом ошибок при попытке запустить пакетный скрипт (exe). С некоторой мелкой отладкой очевидно, что сама папка плагина отсутствует. Я исправил проблему, добавив папку плагинов в соответствующем месте. "C:\Users\xxxx.spyder-py3\My_QtProjects\Project 1\dist\MyQt_1\PySide2 \"
На винде
1- Скопируйте папку plastforms: C:\Users\%USERNAME%\AppData\Roaming\pyinstaller\bincache00_py35_64bit\pyqt5\qt\plugins\platform
2- Вставьте платформу папок в папку с файлом .exe
Пример: c:\MyFolder\yourFile.exe c:\MyFolder\платформы
Я копирую папку \Anaconda3\Library\plugins\platform в\$ \, где $ представляет папку интерпретатора вашего проекта (например: "\ project\anaconda_env\Scripts \"), потому что PyCharm вызывает python.exe в этой папке, а не один в \Anaconda3. и решить мою проблему.
Вам может потребоваться скопировать файл "plugins" в "Anaconda3\Library" (например, на моем компьютере "S:\Anaconda3\Library\plugins" ) на тот же путь вашего .exe файла.
Просто добавьте системную переменную:
QT_QPA_PLATFORM_PLUGIN_PATH и установите его значение в C:\Python34\Lib\site-packages\PyQt4\plugins\platform
Вуаля. Готово
В моем случае у меня было несколько комбинированных проблем для запуска PyQt5 в Windows, см. Ошибка загрузки DLL при импорте PyQt5
РЕШЕНИЕ ДЛЯ ПОЛЬЗОВАТЕЛЕЙ WINDOWS
Создайте новую переменную среды с:
имя: QT_PLUGIN_PATH путь: C:\yourpythonpath\Lib\site-packages\PyQt5\Qt\plugins
после этого exe файл будет работать
скопируйте платформы из Anaconda3\Library\plugins и поместите их в Anaconda3. для env поместите платформы в определенную папку env \
У меня была та же проблема с примером Qt 5.9 btscanner.exe. Что работает в моем случае:
Запустите из командной строки windeployqt.exe следующим образом: c:\qt\qt5.9.0\msvc2015\bin\windeployqt c:\temp\BlueTouth /* windeplyqt - это стандартный инструмент Qt для пакетирования вашего приложения с любым необходимым библиотеки или дополнительные файлы и готовы к развертыванию на другом компьютере */
Результат должен быть примерно таким:
C:\temp\BlueTouth\btscanner.exe 32 bit, release executable
Adding Qt5Svg for qsvgicon.dll
Skipping plugin qtvirtualkeyboardplugin.dll due to disabled dependencies.
Direct dependencies: Qt5Bluetooth Qt5Core Qt5Gui Qt5Widgets
All dependencies : Qt5Bluetooth Qt5Core Qt5Gui Qt5Widgets
To be deployed : Qt5Bluetooth Qt5Core Qt5Gui Qt5Svg Qt5Widgets
Warning: Cannot find Visual Studio installation directory, VCINSTALLDIR is not set.
Updating Qt5Bluetooth.dll.
Updating Qt5Core.dll.
Updating Qt5Gui.dll.
Updating Qt5Svg.dll.
Updating Qt5Widgets.dll.
Updating libGLESV2.dll.
Updating libEGL.dll.
Updating D3Dcompiler_47.dll.
Updating opengl32sw.dll.
Patching Qt5Core.dll...
Creating directory C:/temp/BlueTouth/iconengines.
Updating qsvgicon.dll.
Creating directory C:/temp/BlueTouth/imageformats.
Updating qgif.dll.
Updating qicns.dll.
Updating qico.dll.
Updating qjpeg.dll.
Updating qsvg.dll.
Updating qtga.dll.
Updating qtiff.dll.
Updating qwbmp.dll.
Updating qwebp.dll.
Creating directory C:/temp/BlueTouth/platforms.
Updating qwindows.dll.
Creating C:\temp\BlueTouth\translations...
Creating qt_bg.qm...
Creating qt_ca.qm...
Creating qt_cs.qm...
Creating qt_da.qm...
Creating qt_de.qm...
Creating qt_en.qm...
Creating qt_es.qm...
Creating qt_fi.qm...
Creating qt_fr.qm...
Creating qt_gd.qm...
Creating qt_he.qm...
Creating qt_hu.qm...
Creating qt_it.qm...
Creating qt_ja.qm...
Creating qt_ko.qm...
Creating qt_lv.qm...
Creating qt_pl.qm...
Creating qt_ru.qm...
Creating qt_sk.qm...
Creating qt_uk.qm...
Это все файлы и папки, необходимые для запуска btscanner.exe в эта или другая машина. Просто скопируйте всю папку на другую машину и запустите файл.