【问题标题】:qt.qpa plugin: could not find the qt platform plugin "windows" in "" [duplicate]qt.qpa 插件:在“”中找不到 qt 平台插件“windows” [重复]
【发布时间】:2019-10-26 20:50:34
【问题描述】:

我阅读了很多与此问题相关的问题和答案。但是,它们都没有解决我的问题。

我想指出我使用的是 Qt 的 5.12.2。另外,我尝试使用windeployqt命令(通过cmd调用它)生成.exe文件。

所以,我有两个不同的 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 位)。

你知道会是什么问题吗?

PS。我仔细检查了 qwindows.dll 是否在平台文件夹中。我还尝试将此 dll 放在与 exe 文件相同的文件夹以及名为 plugins 的子文件夹中(基于在网络上找到的一些答案。)

非常感谢,

【问题讨论】:

    标签: qt exe


    【解决方案1】:

    我在 PyQt5 5.11.3、Windows 10、Python 3.7.3 中遇到了这个问题;我收到了类似的错误消息:

    qt.qpa.plugin: 找不到 Qt 平台插件 "windows" in " 此应用程序无法启动,因为没有 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
    

    【讨论】:

    • 不幸的是,它对我不起作用。虽然我在 Anaconda 安装的其他地方有 PyQt5 路径。您指向的 `\platforms` 文件夹中究竟是什么文件?
    • @Colin 使用 conda env 运行我将其设置为 ....\Anaconda3\envs\\Library\plugins\platforms。但是我不确定这是更改 PATH 环境的最佳解决方案
    【解决方案2】:

    这些 exe 文件是否在同一个文件夹中?如果是这样,您需要将它们放在 2 个不同的文件夹中,因为它们不会使用相同的 DLL(包括qwindows.dll)。一个 exe 需要 32 位 DLL,另一个需要 64 位 DLL。

    如果它们已经在 2 个单独的文件夹中,请确保在每个文件夹上运行正确的 windeployqt

    您需要在 64 位 exe 上使用“Qt 5.12.2 (MinGW 7.3.0 64-bit)”安装中的 windployqt.exe。并在 32 位 exe 上使用“Qt 5.12.2 (MinGW 7.3.0 32-bit)”安装中的windployqt.exe

    还要确保使用 windeployqt 复制 Qt5Core.dll,而不是手动复制/粘贴。原因是 windeployqt 在复制 Qt5Core.dll 时会对其进行修补,以便它搜索与您的 exe 相关的插件。

    【讨论】:

      猜你喜欢
      • 2020-10-05
      • 1970-01-01
      • 2022-11-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多