Manjaro Linux下解决spyder依赖冲突的问题

解决Manjaro Linux下spyder依赖冲突的问题

问题的由来

今年开始转入Linux平台做开发,相对于win10,Linux的反应速度简直就像坐飞机和做汽车的对比。当然快乐也伴随着痛苦,Windows平台上运行的好好的spyder在Manjaro Linux上一直傲娇的闹情绪,这样那样的问题就一直没怎么断过,折腾了很久终于发现是spyder依赖的PyQt5版本比系统安装的版本低,版本不兼容导致(原谅我这个小白吧……)

Manjaro Linux是ArchLinux的一个发行版,其包管理器仅提供最新版的软件包,而且不提供降级功能。其包管理器中提供的spyder目前是4.1.5版,依赖的PyQt5版本要求<5.13。然额,系统包管理器提供的PyQt5已升级至5.15.1版,而且不提供降级选项,导致从包管理器安装的spyder直接卡死在主界面上,根本没办法工作。

问题的解决

既然包管理器提供的spyder无法解决冲突问题(况且还有其他软件也在依赖PyQt5包,贸然强行降级也可能产生不可预料的结果),就只有放弃包管理器的spyder,转而直接使用pip在用户路径上单独安装spyder及其正确版本的依赖库了。
命令行:

pip install spyder --user

其中的--user选项表示指示pip将软件包安装到用户路径上(一般是~/.local/lib/site-packages/,相对的,默认的系统路径一般是/usr/lib/python3.x/site-packages/)。

安装好后在命令行执行spyder3,仍然报一大堆的错,最后一行是

qtpy.PythonQtError: No Qt bindings could be found

导致该错误的原因是用户安装路径上缺少PyQt5-sip包,安装spyder时由于pip检测到系统路径上已经有了这个包,就没有在用户路径上重复安装,然额安装在用户路径上的spyder在启动时要在用户路径上查找这个包,找不到所以罢工了……

解决办法是用pip强制在用户路径上重复安装这个缺失的包,命令行:

pip install PyQt5-sip --user --force-reinstall

完成后执行spyder3,spyder的主界面终于成功显示出来了……

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值