QT.QPA插件:在“”中找不到QT平台插件“Windows”。

4

我读了很多与这个问题相关的问题和答案,但是没有一个解决了我的问题。

我想指出我正在使用Qt的5.12.2版本。此外,我尝试使用windeployqt命令生成.exe文件(通过cmd调用)。

所以我有两个不同的Qt应用程序(2个.exe文件)。我将它们传输到没有Qt安装的另一台Windows机器上。一个.exe文件可以正常运行,但另一个会返回与Qt平台插件“Windows”相关的错误。

我还想指出,可运行的exe是使用Qt 5.12.2(MinGW 7.3.0 64位)生成的。对于有问题的exe,则使用了5.12.2(MinGW 7.3.0 32位)。

你知道问题出在哪里吗?

附注:我已经仔细检查了platforms文件夹中是否存在qwindows.dll。我还尝试将该dll放置在与exe文件相同的文件夹中,以及一个名为plugins的子文件夹中(基于在网上找到的一些答案)。

非常感谢,

2个回答

3
我遇到了PyQt5 5.11.3、Windows 10和Python 3.7.3的问题;我收到了类似的错误消息:

qt.qpa.plugin:在“ 应用程序无法启动,因为找不到任何Qt平台插件来初始化。重新安装应用程序可能会解决此问题。

我设置了以下环境变量,然后运行了应用程序。这种方法已经解决了我的问题,希望对你有所帮助:最初的回答
name:  QT_QPA_PLATFORM_PLUGIN_PATH
value: C:\Users\"your own user 
name"\AppData\Local\Programs\Python\Python37\Lib\site- 
packages\PyQt5\Qt\plugins\platforms

1
很遗憾,对我没有用。尽管我在Anaconda安装的其他地方有PyQt5路径。你指向的\platforms\文件夹中确切是哪个文件? - Colin
1
@Colin 正在使用 conda 环境,我将其设置为 ....\Anaconda3\envs<YOUR_ENV>\Library\plugins\platforms。 但是我不确定这是否是更改 PATH 环境的最佳解决方案。 - skibee

0
这些exe文件在同一个文件夹中吗?如果是,你需要将它们放在两个不同的文件夹中,因为它们不会使用相同的DLL(包括qwindows.dll)。一个exe需要32位的DLL,另一个需要64位的DLL。
如果它们已经在两个单独的文件夹中,请确保您对每个文件夹运行了正确的windeployqt
您需要在64位exe上使用来自您的“Qt 5.12.2(MinGW 7.3.0 64位)”安装的windployqt.exe。并在32位exe上使用来自您的“Qt 5.12.2(MinGW 7.3.0 32位)”安装的windployqt.exe
此外,请确保使用windployqt复制Qt5Core.dll,而不是手动复制/粘贴。原因是当拷贝时,windployqt会修补Qt5Core.dll,以便它可以相对于您的exe搜索插件。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接