问题描述

This application failed to start because no Qt platform plugin could beinitialized. Reinstalling the application may fix this problem.

问题解决

遇到了这个问题,卡了蛮久的,也在网上找了很多方法,终于解决了!下面是我自己解决这个问题的过程,希望能够有参考价值,也是对自己解决这一过程的一点记录:

方法1. 重新安装pyqt5 和 pyqt5-tools

在cmd里面,首先卸载掉原来的模块:

pip uninstall pyqt5
pip uninstall qyqt5-tools

然后安装:

pip install pyqt5
pip install pyqt5-tools

要注意 pyqt5-tools 和 pyqt5 需要有版本对应,如果不对应的话,相关信息在pip install的结果会给出,只要跟着上面的安装对应版本就行,例如:

pip install pyqt5==版本号

方法2. 配置环境变量

进入环境变量,查看用户变量里是否有这个:

没有的话,需要新建:

QT_QPA_PLATFORM_PLUGIN_PATH
python安装目录下的PyQt5的包(根据自己的安装目录选择)

如果还是不行,可以在这个环境变量后面再添加一个:

%QTDIR%\plugins\platforms\

!!!注意需要去确保【plugins\platforms】下面是有文件的

我的是PyQt5下面的Qt没有这个文件,但PyQt5下面的Qt5文件夹有

因此我修改了环境变量为Qt5\plugins,但是没有用

所以我把PyQt5下面的Qt5里面的plugins文件夹复制到了Qt下面,不修改环境变量

最后成功了~

由于我之前的程序文件运行比较麻烦,所以我在测试的时候选择了一个比较小的程序来测试,下面是代码:

import sysfrom PyQt5.QtWidgets import QApplication, QWidgetfrom PyQt5.QtGui import QIconclass Example(QWidget):def __init__(self):super().__init__()self.initUI()def initUI(self):self.setGeometry(300, 300, 300, 220)self.setWindowTitle('Icon')self.setWindowIcon(QIcon('web.png')) self.show()if __name__ == '__main__':app = QApplication(sys.argv)ex = Example()sys.exit(app.exec_())