9

当我尝试从 Eclipse 运行任何 PyQt5 程序时,我收到了这个错误。

无法加载平台插件“windows”。可用平台有:windows、minimal

我从来没有遇到过 PyQt4 的这个问题,但是新版本。

我无法运行程序。从这里的其他问题我知道它发生在 Qt C++ 开发中,解决方案是将一些 Qt dll 文件复制到可执行程序目录。

我是否也需要在 Python 开发(PyQt5)中做同样的事情?将这些文件添加到我的 *.py 文件所在的目录中?这不应该由 PyQt5 安装管理吗?

谢谢

4

8 回答 8

11

我在 PyQt5 5.0.2、Windows 8、Python 3.3.2 中遇到了这个问题;错误信息略有不同:

Failed to load platform plugin "windows". Available platforms are:

设置以下环境变量,然后运行应用程序。

$env:QT_QPA_PLATFORM_PLUGIN_PATH="C:\Python33\Lib\site-packages\PyQt5\plugins\platforms"

于 2013-08-12T02:18:52.693 回答
7

复制C:\Python34\Lib\site-packages\PyQt5\libEGL.dll到与 .exe 相同的目录。

来源:http ://bird1110.blogspot.com/2014/04/python-33-pyqt5-and-cxfreeze-exe-on-64.html

于 2014-09-01T15:55:25.700 回答
5

我在编译我的代码时遇到了类似的问题cx_freeze

将文件夹平台从 python 安装目录复制到我的构建文件夹中解决了这个问题。“平台”文件夹包含 qminimal.dll

于 2017-04-12T18:33:18.473 回答
4

另一个对我有用的解决方案;Windows 7的; PyQt5,Python 3.4 64 位:

pyqt = os.path.dirname(PyQt5.__file__)
QApplication.addLibraryPath(os.path.join(pyqt, "plugins"))

您还可以QT_QPA_PLATFORM_PLUGIN_PATH使用目录路径设置环境变量plugins

os.environ['QT_QPA_PLATFORM_PLUGIN_PATH'] = qt_platform_plugins_path

这也适用于 PyInstaller!

于 2016-02-04T20:20:07.293 回答
1

我喜欢 uetoyo 的回答,但 Anaconda 已经移动了目录。这适用于 Windows 7 上的 Python 3.5.2 Anaconda 4.2.0。

import os
if os.name == "nt":  # if windows
    import PyQt5
    pyqt_plugins = os.path.join(os.path.dirname(PyQt5.__file__),
                                "..", "..", "..", "Library", "plugins")
    QApplication.addLibraryPath(pyqt_plugins)
于 2017-04-17T17:13:58.927 回答
1

我找到了文件:需要包含 qwindows.dll 以允许我的 .exe 文件独立运行而不会出现错误。为此,请将 qwindows.dll 路径添加到您的数据文件列表中:

setup(windows=[YOURSCRIPT.py]
, data_files = [('.','DRIVE:\PythonPath\Lib\site-packages\PyQt4\plugings\platforms\qwindows.dll')]) 

您这样做并现在设置环境路径的原因是,如果 qwindows.dll 文件保存在同一个包中,您的程序将在任何机器上运行。如果只设置环境变量,程序只能在安装了 PyQt 的电脑上成功运行。

于 2016-01-25T18:36:38.453 回答
0

如果你使用 PySide2 你可以用这个检查

import os
if os.name == 'nt':
    import PySide2
    pyqt = os.path.dirname(PySide2.__file__)
    QApplication.addLibraryPath(os.path.join(pyqt, "plugins"))
于 2019-09-07T11:42:36.817 回答
0

在使用 Anaconda Python 3.6 发行版时,这对我有用:

  1. 我使用pip install pyqt5. 它的作用是在路径中创建一个Qt/Plugins插件目录。../Anaconda3/Lib/site-packages/PyQt5

  2. 继 Roger Allen 和 uetoyo 之后,我补充说:

if os.name == "nt":  # if windows
    from PyQt5 import __file__
    pyqt_plugins = os.path.join(os.path.dirname(__file__), "Qt", "plugins")
    QApplication.addLibraryPath(pyqt_plugins)
    os.environ['QT_QPA_PLATFORM_PLUGIN_PATH'] = pyqt_plugins

到我的脚本。它也适用于 pyinstaller。

于 2019-08-19T00:03:55.003 回答