Jupyter Notebook 是一个把代码、图像、注释、公式和作图集于一处,实现可读性分析的交互式笔记本工具。借助所谓的内核(Kernel)的概念,Jupyter Notebook 可以同时支持包括R、python2、python3、Ruby 在内超过50多种不同编程环境。
基于 Kernel,Jupyter Notebook 可以支持的编程语言:
(其实 Jupyter Notebook 可以支持的编程语言,远不止这几种。下图只是个不完全列表。)
说了那么多,开始今天的主题:如何在 Jupyter Notebook 实现 python2 与 python3 自由切换,主要分为两步:
1. 分别在 python2 和 python3 环境中安装 ipykernel 内核。
2. 为当前用户(--user),或者指定路径(--prefix)注册 IPython kernel spec,即把内核的信息写到指定的。
关于 2 需要注意以下 5 点:
与不能同时使用。
使用,IPython kernel spec 默认安装到当前用户~/.local/share/jupyter/kernels或者~/.ipython/kernels。
使用,后接 IPython kernel spec 自定义安装路径。
不用和,IPython kernel spec 默认安装到/usr/local/share/jupyter/kernels或者/usr/share/jupyter/kernels。
IPython kernel spec 安装可以使用python -m ipykernel install,也可以使用ipython-kernel-install命令,两者是一样的。
为了更好地说明,下面我们来实际操作一下。
Python 命令直接安装:
# python2 环境(默认)
$ python -m pip install ipykernel
$ python -m ipykernel install --prefix=/Bio/Anaconda2.5/
# python3 环境
$ /Bio/Anaconda2.5/envs/python3/bin/python -m pip install ipykernel
$ /Bio/Anaconda2.5/envs/python3/bin/python -m ipykernel install --prefix=/Bio/Anaconda2.5/ --name "python3"
也可以使用 conda 命令安装:
# python2 环境(root)
conda install -n root ipykernel
python -m ipykernel install --prefix=/path/to/install --name "python2"
# python3 环境
conda install -n python3 ipykernel
/path/to/python3 -m ipykernel install --prefix=/path/to/install --name "python3"
最后,检查安装好的 kernels:
$ jupyter-kernelspec list
Available kernels:
python2 /Bio/Anaconda2.5/share/jupyter/kernels/python2
python3 /Bio/Anaconda2.5/share/jupyter/kernels/python3
可以看到,python2 和 python3 的 kernel 已经安装好了,我们在命令行输入jupyter notebook,在 web 页面的 "新建笔记(New)" 中就可以看到支持自由切换的 python2 和 python3 环境: