今天小编给大家分享一下Anaconda安装后Spyder闪退如何解决的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。
第一阶段:
从官网下载Anaconda之后,安装,一切正常。打开Anaconda navigator,提示我是否更新,要选不要更新。
点击spyder之后,spyder的启动图标可以正常显示,图标下面一行小字load各种东西也正常,但最后显示load main window之后就自动闪退了,什么也没有,任何错误信息都看不到。
最终可行解决方案:
1.打开Anaconda Prompt,输入spyder --new-instance
spyder会启动,然后闪退…但Anaconda Prompt 会显示出错信息,我上面显示有四行:
link image0 hasn't been detected!
Bad file descriptor (bundledzeromqsrcepoll.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 (bundledzeromqsrcepoll.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
它成功启动了!!!!!
更新后如果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,大功告成