在archlinux上安装Jupyter Notebook,pacman默认装的core对应python3。由于还有使用python2的需求,所以希望能够实现python2和python3在Jupyter上共存,以便切换使用。
Python2在之前已经装好,“python”命令已经被python3占用,所以使用“python2”命令执行。在网上查了一些资料后使用先安装pip2,然后用pip2安装ipython的ipykernel。
pacman -Sy python2-pip
pip2 install ipykernel
如果权限不够,用sudo提权。安装后,查看jupyter版本,python2/3都装好了。
jupyter-kernelspec list
输出
python2 /usr/share/jupyter/kernels/python2
python3 /usr/share/jupyter/kernels/python3
启动Jupyter Notebook后,新建会话里已经出现了python2选项,点击打开,由于这里看不到python版本信息,输入
import sys
sys.version
输出
'3.6.4 (default, Dec 23 2017, 19:07:07) \n[GCC 7.2.1 20171128]'
实际上这里仍然调用的是python3, 并没有调用python2版本。
网上查阅中英文资料均无结果,无意间发现系统里有两个kernel.json文件,分别是
/usr/share/jupyter/kernels/python2/kernel.json
/usr/share/jupyter/kernels/python3/kernel.json
编辑/usr/share/jupyter/kernels/python2/kernel.json
{
"display_name": "Python 2",
"language": "python",
"argv": [
"python",
"-m",
"ipykernel_launcher",
"-f",
"{connection_file}"
]
}
把其中argv第一个参数改为python2
{
"display_name": "Python 2",
"language": "python",
"argv": [
"python2",
"-m",
"ipykernel_launcher",
"-f",
"{connection_file}"
]
}
重新打开Jupyter notebook,新建python2会话查看版本
import sys
sys.version
输出
'2.7.14 (default, Sep 20 2017, 01:25:59) \n[GCC 7.2.0]'
至此,问题解决。
(同步发表在 http://b2f.me/jupyter-notebook-python2-3-gong-cun-de-wen-ti-2018-01-30/)