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"

相关推荐