小白一个,搜索了大半天,还重装了两次,快被折磨疯了,终于探索出解决之道了。
分享出来,希望后来者少走一些弯路,不要在安装上费这么大劲。如果你遇到了跟我一样的问题,希望可以帮到你
(第一次发贴,描述不清,多多包涵)
问题描述+解决方案:
第一阶段:
从官网下载Anaconda之后,安装,一切正常。打开Anaconda navigator,提示我是否更新,我选了remind me later(埋个伏笔)。
接着点Spyder,打不开。点击spyder之后,spyder的启动图标可以正常显示,图标下面一行小字load各种东西也正常,散热风扇也开始rou~rou~的转,但最后显示load main window之后就自动闪退了,什么也没有,任何错误信息都看不到,散热风扇也歇了。
艰难的探索过程略去……(参考好多文章,没记录下来,抱歉)
最终可行解决方案:
1.打开Anaconda Prompt,输入spyder –new-instance
spyder会启动,然后闪退…但Anaconda Prompt 会显示出错信息,我上面显示有四行:
link image0 hasn't been detected!
Bad file descriptor (bundled\zeromq\src\epoll.cpp:100)
[一大串数字:ERROR:broker_win.cc(59)] Error reading broker pipe: 管道已结束。 (0x6D)
[一大串数字:ERROR:broker_win.cc(59)] Error reading broker pipe: 管道已结束。 (0x6D)
2.继续在Anaconda Prompt中输入pip check
会出现几行字,有两行与spyder有关,其中一行显示:
spyder requires pyqt5, which is not installed
另一行是说spyder需要另一个包,也没安装,但我不记得是什么了,但它的安装过程跟pyqt5一样。下面只说pyqt5的方法
3.输入pip install pyqt5==5.12.3
(如果只输入pip install pyqt5,他会自动安装最新版本,然后有红字提醒,意思大概是spyder要求pyqt5的版本不能高于5.13。这时,需要输入pip uninstall pyqt5,把最新版本卸掉,再重新安装旧版本。如果你想查看有哪些旧版本可以选择,输入pip install pyqt==5.33,==后面不一定是5.33,只要是个不存在的版本号就行,他会报错,并且显示出有哪些版本可供选择。我选的是5.12.3)
这时应该会提示还有一个包pyqtwebengine也要求版本要低于5.13
那就继续输入pip install pyqtwebengine==5.12.1
4.输入spyder –new-instance,尝试再次启动spyder。
这一次,spyder依然会闪退,但报错信息只剩下一行:
Bad file descriptor (bundled\zeromq\src\epoll.cpp:100)
这说明我们的道路是正确的!至少已经解决了部分问题。剩下的问题是另一个包pyzmq的问题,下面我们开始解决它(我不知道大佬们怎么知道是这个包的问题,但我照着做确实解决了……莫非是zeromq跟zmq长得很像,才发现的?)。
5. 输入pip uninstall pyzmq
(卸载是因为pyzmq版本过高,不匹配。你可以输入pip show pyzmq 查看当前版本,不出意外的话,应该是22.x.x)
再输入pip install pyzmq==19.0.2安装旧版本
6. 再次输入spyder –new-instance
它成功启动了!!!!!
However,好奇害死猫…
第二阶段
我tm就是手贱
重新启动Anaconda navigator,它再次提示要不要更新,我点了是…然后升级到了2.1.2,然后spyder又打不开了。这一次,它能进入spyder,但就一秒,它就闪退了。
最终可行解决方案:
1.再次打开Anaconda prompt,简单排查
输入pip check
这时,它没有显示关于spyder的报错,证明pyqt5那俩包还正常。
输入spyder –new-instance
它会报错,报一大堆错,我也看不懂…翻来覆去就在那错误里看见两个字:pyzmq。然后说在里面找不到REC之类云云。我猜,这大抵又是pyzmq出了问题。
2.输入pip uninstall pyzmq卸掉pyzmq那厮
输入pip install pyzmq==20.0.0再装一个新一点的版本(这里可以用上面说的那个方法,给他指定一个不存在的版本,看有哪些版本可以安装,我选的是20.0.0,你们可以试一试别的版本行不行,不要尝试最新的,最新的我试了,不行)
3.重启spyder,大功告成
咱也不知道那些包都是干什么的,为什么版本之间不会兼容。反正这样一套流程下来,确实是能用了。
我把我的过程写出来,以供大家参考。大家遇到的问题可能与我的不一样,不要全盘照抄,找一找自己的是哪里出了问题,再去解决。
文章出处登录后可见!