python未打包时可用,打包后,available platform plugins are.Reinstalling the application may fix this problem

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


问题

打包labelme之后,运行exe,提示This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.。available platform plugins are
在这里插入图片描述


提示:以下是本篇文章正文内容,下面案例可供参考

一、原因及解决办法

网上都说是环境变量的问题,添加环境变量后还是不对。
感觉根本上就是找不到库的原因。于是自己尝试了几次,前两次的尝试都失败了,不过最后一次尝试,软件可以启动运行了,建议看完之后再尝试。

我本来装的pyqt5,在labelme所用的虚拟环境下查看\Lib\site-packages\PySide2\plugins\platforms目录下动态库只有4个,而提示上显示了5个:direct2d,minimal,offscreen,webgl,windows。
于是卸载pyqt5,重装,然后重新打包,还是不对。

再次卸载pyqt5,安装PySide2,查看\Lib\site-packages\PySide2\plugins\platforms目录下动态库个数是5个,感觉应该是对的,重新打包,还是报错。
在PySide2的_init__.py文件中增加

#下面三行是在import部分就加入pyside2的plugins\platforms文件夹路径
dirname = os.path.dirname(PySide2.__file__) 
plugin_path = os.path.join(dirname, 'plugins', 'platforms') 
os.environ['QT_QPA_PLATFORM_PLUGIN_PATH'] = plugin_path

重新打包还是出错。

查看打包后的目录下只有pyqt5文件夹,无PySide2文件夹,于是将\Lib\site-packages\PySide2\plugins\platforms目录下动态库拷贝到打包目录下的dist\PyQt5\Qt\plugins\platforms文件夹下后,再次启动,无问题,软件运行。

猜你喜欢

转载自blog.csdn.net/DustDawn/article/details/128918945
今日推荐