Qt 平台插件无法为其他计算机加载

Posted

技术标签:

【中文标题】Qt 平台插件无法为其他计算机加载【英文标题】:Qt platform plugin fails to load for other computers 【发布时间】:2018-04-09 07:06:45 【问题描述】:

我在 Windows 中使用 pyinstaller 从 python 应用程序创建了一个 .exe。这个应用程序会打开一些 matplotlib 窗口。起初,在打开 matplotlib 窗口时,它向我抛出了错误“此应用程序无法启动,因为它无法加载 Qt 平台插件'Windows'”。我做了一些挖掘,发现我必须将环境变量“QT_PLUGIN_PATH”设置为值“C:\Users\user\Miniconda2\Library\plugins”。它工作正常,但只在我的电脑上。当我在其他 PC 中打开 .exe 并打开 matplotlib 窗口时,它显示了同样的错误。有没有办法让它适用于每台计算机?

【问题讨论】:

好像是common problem 【参考方案1】:

您需要使用安装程序打包 QT DLL。这些 DLL 必须随您的应用程序一起提供,因为您的应用程序依赖于它们。它可以在您的 PC 上运行,因为您的计算机上安装了 QT 软件包。

请点击以下链接查看示例代码,以创建解决 DLL 问题的包。

https://github.com/carlosperate/pyinstaller-test/blob/master/package/pyqt5_test.spec

【讨论】:

我编辑了我的 .spec 文件,就像您提供的链接中的文件一样,但同样的问题仍然存在。如果我手动将 dll 复制到应用程序文件夹,它会起作用吗?如果是,需要哪些 dll?我复制了“qminimal.dll”、“qoffscreen.dll”和“qwindows.dll”,但仍然没有结果。 你可以试试这个吗:github.com/pyqt/python-qt5/issues/2 在这里下载depends.exe dependencywalker.com 并找到你的exe的所有依赖项并将它们复制到本地文件夹中它应该可以工作【参考方案2】:

他们说,如果你不能解开这个结,就把它剪掉。这就是我所做的,因为我想不出办法,所以我完全删除了 Qt 后端并添加了一个 Tk 与此行:

import matplotlib
matplotlib.use('TkAgg')

【讨论】:

以上是关于Qt 平台插件无法为其他计算机加载的主要内容,如果未能解决你的问题,请参考以下文章

无法在 Archlinux 上找到或加载 Qt 平台插件“xcb”(写!AppImage)

AndroidStudio 模拟器无法在 macOS 上运行,因为“无法初始化 Qt 平台插件”

无法为模块“QtQuick”(CMake)加载插件

找不到qt平台插件xcb

Qt Creator 编译后无法加载插件

Qt 应用程序无法加载自定义插件调试库