PyQt5安装踩坑实录(解决Spyder与高版本PyQt5不兼容问题以及相关乱七八糟问题)
免责声明
如果真的有人在看的话,请不要按我的踩坑记录来……前面是记录向的,可以拖到最后看安装流程。
安装记录
在安装pyqt前我已经安装过了Anaconda3,大概也是因此才会出现本文中的各种问题的。
首先按照一些博主的做法,直接pip install PyQt5,pip install PyQt5-tools,均会出现报错:
ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
spyder 5.1.5 requires pyqtwebengine<5.13, which is not installed.
spyder 5.1.5 requires pyqt5<5.13, but you have pyqt5 5.15.6 which is incompatible.
这个是因为spyder和高版本的pyqt5不兼容。
上面提到的pyqtwebengine和pyqt5,都可以直接pip安装旧版本( 参考 https://blog.csdn.net/Xiao_Spring/article/details/114413575 这位博主的文章 ):
pip install pyqt5==5.12.3
pip install pyqtwebengine==5.12.1
pip install typed-ast
但对于Pyqt5-tools,可能由于新版本较多,试图安装时会出现以下的报错:
ERROR: Could not find a version that satisfies the requirement pyqt5-tools== (from versions: )
ERROR: No matching distribution found for pyqt5-tools==
这个时候需要借助whl文件来安装旧版本。
在网站 https://pypi.tuna.tsinghua.edu.cn/simple/pyqt5-tools/ 中找到需要下载的版本:
这里文件名中,cp后的数字是对应python的版本的。尽量找到和自己版本匹配的,如果没有的话,下载后改文件名也可以。
安装:
pip install wheel
pip install pyqt5_tools-5.12.3.1.6rc1-cp38-none-win_amd64.whl
(第二步就写你下载的对应文件名就好,不一定是这一个)
我这里第一次安装时报错
ERROR: pyqt5_tools-5.12.3.1.6rc1-cp38-none-win_amd64.whl is not a supported wheel on this platform.
原因是版本不匹配。文件名中的cp38是对应Python3.8,我使用的是python 3.9,所以这里需要再更改文件名。把文件名改为cp39后再次尝试
pip install pyqt5_tools-5.12.3.1.6rc1-cp39-none-win_amd64.whl
安装成功。
现在解决了前面的问题,pip check之后发现还剩一个pyqt-plugins不兼容的问题,如图所示。
试图按照前面的思路安装旧版本,未果,全网搜了一通也没找到这玩意的5.12版本(找得到最早的是5.14),翻了下发现安装信息中,pyqt-plugins是在对pyqt-tools的安装语句中出现的。
查看github页面( https://github.com/altendky/pyqt-tools ),对应5.15版本的介绍里写:
提到了从 pyqt5-tools v3 开始,tools包分解成了四个部分。那这个v3又是什么呢?……完全搜不到相关信息。
我直接一个大胆猜测,怀疑plugins是从5.12版本之后才分解出来的。
接下来是小心求证环节。查看README文档的历史记录,前一次提交中是这样的
v2开始已经分出来了,但这里写的对应pyqt版本还是5.11……真是跳跃。
在csdn寻找一番,发现了一个博主( https://blog.csdn.net/qq_38463737/article/details/106574408 )的安装截图:
发现他的图里5.13版本也是没有plugin的!既然如此也不管什么报错了,直接进行一个卸载
pip uninstall pyqt5-plugins
按照上面博主的文章在pycharm中进行测试。打开Qt Degisner时发现会报错。弹出报错的那一刻我心都死了()
不过其实cancel掉后还是可以正常用,或许不是特别大的问题。
查了一下,根据 https://www.cnblogs.com/2944014083-zhiyu/p/14873696.html 这位博主的说法,是因为传入了参数导致的报错。按照博文中所说去掉了参数,再次执行qt designer就不会有报错了。大成功!
总结
需要下载的内容:
https://pypi.tuna.tsinghua.edu.cn/simple/pyqt5-tools/
在网站中找到pyqt-tools5.12版本,其中文件名中cp38之类对应的是python版本,版本对应的随便哪个都行(我猜的),不对应的也可以下载下来然后把文件名改掉(如cp38改为cp39)
安装语句:
pip install pyqt5==5.12.3
pip install pyqtwebengine==5.12.1
pip install typed-ast
pip install wheel
pip install pyqt5_tools-5.12.3.1.6rc1-cp39-none-win_amd64.whl
(最后一行的文件对应的是第一步下载的文件)
如果pip check后发现还是有pyqt5-plugins不兼容的问题,卸载它(没有就不用了)
pip uninstall pyqt5-plugins
检验安装结果:
在PyCharm中检验:对照这篇
https://blog.csdn.net/qq_38463737/article/details/106574408
如果出现报错,参考这篇:
https://www.cnblogs.com/2944014083-zhiyu/p/14873696.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现