jupyter调教
python2,python3两个kernel共存
引入:事情的起因是公司需要用pyspark,而将pyspark封装到jupyter中。而公司spark集群上都是py2的解释器。因此jupyter上运行时需要使用py2的kernel
环境:使用conda3自带的jupyter,已装py3解释器,非虚拟环境
前提:使用py2的kernel需安装py2的ipython和kernel。
尝试1:
而目前使用的jupyter版本过高,和py2的ipython和kernel不匹配,但安装低版本也不匹配,相关py库仍然是Py3的。
参考:https://stackoverflow.com/questions/40419609/how-to-make-ipython-use-python-2-instead-of-python-3
尝试2:
由于每个kernel有相应配置文件,复制一份配置文件,并根据运行时报错一步步解决,包括将系统已有的py2赋值到有效的py3相应目录下也不行。
最后解决办法:
1、安装py2的虚拟环境
如安装成功,使用
# conda env list
能显示自己命名的虚拟环境名
2、激活py2虚拟环境
# source activate virtual_name
virtual_name就是前一步List中你创建的虚拟环境名;如果成功,在bash左侧会显示虚拟环境名
3、在激活的虚拟环境中安装ipython和kernal
# pip install xxx
具体命令忘了,可百度搜到。只是注意这里不需要再使用pip2或者使用xxx==5.0来指定版本,这样做反而不能生效
4、在虚拟环境中运行jupyter
否则Py也不生效哦
5、退出虚拟环境
source deactivate virtual_name
jupyter删除自动退出
引入:jupyter在一段时间不用它后就自动gg了(比如吃法的时间),这样很多内存中的东西就没法保存,很烦人。
尝试:
网上找到的解决办法一般是这样:
在配置文件将这一行取消注释:
# c.NotebookApp.shutdown_no_activity_timeout = 0
参考:https://blog.csdn.net/Dolphinsz/article/details/83623514
我取消注释+重新启动进程没用。
解决办法:
运行时执行:
# nohup jupyter notebook &
然后关掉terminal这个界面也Ok.
但是要退出的话怎么办呢,除了kill -9强行杀进程,也可以在jupyter首页右上角选择"quit"