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
python未打包时可用,打包后,available platform plugins are.Reinstalling the application may fix this problem_第1张图片


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

一、原因及解决办法

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

我本来装的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文件夹下后,再次启动,无问题,软件运行。

你可能感兴趣的:(python,开发语言,qt)