PySide2解析ui后,执行出错。解决办法。

错误提示类似:”qt.qpa.plugin: Could not find the Qt platform plugin "windows" in “

主要是因为PySide2所用的pyqt5的版本与现有环境下PyQt5的版本不一致导致的,我们需要显式的指明PySide2的路径。

在脚本头部,引入正常模块的后面,加入以下代码:

dirname = os.path.dirname(PySide2.__file__)
plugin_path = os.path.join(dirname, 'plugins', 'platforms')
os.environ['QT_QPA_PLATFORM_PLUGIN_PATH'] = plugin_path

这样就没有问题了。

 

但是,如果使用Pyinstaller对上述程序进行编译时,由于封装时的__file__发生了变化,导致dirname发生变化,最终,

上述修正在封装后并没有产生作用,执行exe应用程序时会发生上述一样的错误。

这时候,临时的解决办法就是显示的指明dirname的绝对路径:

dirname = 'D:\Anaconda3\lib\site-packages\PySide2'   # 指定后,解决问题。
plugin_path = os.path.join(dirname, 'plugins', 'platforms')
os.environ['QT_QPA_PLATFORM_PLUGIN_PATH'] = plugin_path

dirname的路径根据你的不同安装路径来决定。安装目录可能稍有不同。