我在Matlab中运行一个python函数,当我运行时,我得到了错误:
此应用程序无法启动,因为它找不到或加载Qt平台的插件"windows"在"中,可用的插件有:最小的屏幕外窗口。重新安装应用程序可能会解决此问题问题
我已经按照本视频中的步骤将平台文件夹复制到pyqt工具中,并在本文中添加到环境路径中。如果我在python中运行我的代码,它运行得很好,似乎Matlab没有找到Qt平台插件"Windows"有人能帮我吗?
这是部署Qt应用程序的问题。根据您使用的平台,您可以在Qt目录中找到用于部署的工具。例如,在我的Windows电脑上,这是:
c:Qt5.15.0mingw81_64binwindeployqt.exe
你可以这样称呼这个工具:
windeployqt <path-to-app-binary>
// OR
windeployqt --qmldir <path-to-app-qml-files> <path-to-app-binary>
还有许多其他选项,如--debug
、--release
等。要查看所有选项,只需调用windeployqt
即可。
在其他平台上,它可以是linuxdeployqt
、macdeployqt
,也可以是pyqtdeploy
。
调用该工具后,它会将所有需要的子模块复制到你的应用程序(附近(,这样它就会找到所需的所有模块。
在我的Windows系统上,我有着与Python函数本机运行相同的体验,但不会通过MATLAB运行。问题是缺少或不兼容的dll(而不是exe(文件。为了解决这个问题,我将conda环境中的确切dll复制到MATLAB\bin\win64文件夹中。也就是说,我复制了这五个dll
- qdirect2d.dll
- qminimal.dll
- qoffscreen.dll
- qwebgl.dll
- qwindows.dll
来自我的conda环境的\Library\plugins\platforms文件夹
C:\Users\username\AppData\Local\Continum\envs\myenv\Library\plugins\platforms
进入MATLAB文件夹
C:\Program Files\MATLAB\R2020b\bin\win64\platforms
在复制时,我覆盖了MATLAB文件夹中已经存在的三个dll。