1. 无法找到插件目录
pyqt程序无法运行,并且会弹出以下对话框(this application failed to start.....)
产生这个问题的原因是pyqt5在查找plugins的时候(plugins存放了启动文件),无法识别中文路径。(Qt plugin directory "" does not exist!)
这是具体的报错信息, 中文路径的部分都是问号,说明pyqt无法识别中文,然后查找plugin 无果报错。
在正常的python环境里,所有路径都是由中文构成的,所以不会报错。
我觉得这是qt的一个历史遗留问题,类似于python2,也是不支持中文。(不过最新的pyqt6已经解决了这个问题)
解决办法1
import os
os.environ['QT_QPA_PLATFORM_PLUGIN_PATH'] = r'.\venv\Lib\site-packages\PyQt5\Qt5\plugins'
复制这两行到程序最前方,解决路径问题,作用是改变plugins的查找路径(也可以把plugins单独拿出来,自定义一个想要的路径)
缺陷:
这种方式治标不治本,因为pyqt5的中文路径问题仍然存在,这里解决了,可能使用pyqt5里别的某一个模块就会有同样问题
解决办法2(省时省力)
不在虚拟环境中使用pyqt5,或者改用pyqt6。(pyqt6已经解决了中文问题,在虚拟环境也可以正常使用)
这种方式几乎不会碰到任何环境的坑。