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

posted @ 2022-06-02 22:50  圣暖气片  阅读(20329)  评论(0编辑  收藏  举报