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)