一般来说,发布后的应用程序要能正常使用必须设置插件路径的环境变量:
cmd脚本:
wmic ENVIRONMENT create name="QT_QPA_PLATFORM_PLUGIN_PATH",username="<system>",VariableValue="%cd%plugins" pause
但是这样存在诸多问题,比如会导致其他用Qt开发的软件出错,例如QtCreator等。
最好的方法是直接指定去加载目录下的环境变量。打包后,如果指定了-D打包为单个路径的参数,plugins所在路径为"./PtQt5/Qt/plugins"
然后在代码的开头部分写上:
pluginsPath='PyQt5/Qt/plugins' if os.path.exists(pluginsPath):#指定插件路径。源码运行时不会生效,打包后运行检测到路径,加载插件 QApplication.addLibraryPath(pluginsPath)
这个代码保证源码运行时不会加载插件,但是打包运行后,自动检测到插件路径,进行加载。
实测运行成功。