项目场景:
Anaconda指的是一个开源的Python发行版本,其包含了conda、Python等180多个科学包及其依赖项。
下载安装Anaconda的时候,会自动装对应的Python版本的,我安装的版本是
Anaconda版本:4.8.1
Python版本:3.7.1
问题1(打不开jupyter notebook):
首先安装完Anaconda后,你会发现出现这些工具,但是我打不开jupyter notebook,或者说打开后出现一个黑框框就闪退了。
可以选择在Anaconda Prompt命令行中输入jupyter notebook来打开,可以发现报错。
ImportError: cannot import name ‘constants’ from ‘zmq.backend.cython’
翻译:无法从“ zmq.backend.cython”导入名称“ constants”。
解决方案:
重新安装pyzmq
pip uninstall pyzmq
pip install pyzmq
问题2(卸载包报错):
但是我在卸载pyzmq时,又出现了报错:
ERROR: Cannot uninstall ‘pyzmq’. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall.
翻译:无法卸载“ pyzmq”。 这是一个发行版安装的项目,因此我们无法准确确定属于该项目的文件,而这只会导致部分卸载。
解决方案:
1.不能卸载文件,只能强行升级安装包
pip install --ignore-installed pyzmq
这是网上找到最常用的方法,但是对我来说没用,大家可以先试一下。
2.删除*.egg-info文件
找到pyzmq对应的*.egg-info文件,一般就在usr/lib/python3.7或者其他安装Anaconda3\Lib\site-packages等路径里,最好的办法直接在/目录下全局搜索pyzmq,再找文件后缀为.egg-info的(不要直接搜索pyzmq.egg-info,可能不对,因为文件名后面往往还带着版本号),然后删掉即可,再安装pyzmq就行。
其他的package卸载遇到这种情况方法也通用,搜索package name对应的*.egg-info文件。
问题3(jupyter notebook服务连接出错):
这样之后jupyter notebook可以正常打开了,但是发现代码结果运行不出来,并且行数也不能正常显示。
可以看到命令行报错:
ERROR:tornado.application:Exception in callback
……
ValueError: signal only works in main thread
解决方案:
原因是服务没有连接上,是包的版本冲突导致的。
网上找了很多,比较一致的方法是:
pip install "pyzmp==17.0.0"
pip install "ipykernel==4.8.2"
意思是重新安装两个匹配的pyzmp和ipykernel,可以先试一下。
但是我试了,又报了其他的错误,而且给很不好解决。
换个解决思路,我觉得我这里出错的原因是前面重新安装了pyzmp,应该是最新版本的,因此和原来的ipykernel产生不匹配的问题,所以我只需要重新安装ipykernel是不是就好了(参照问题2),实践之后成功了!!!