在初学python的时候被pip、conda、anaconda、jupyter的关系搞的很头大。差不多了解了conda的威力之后,发现虽然使用conda create可以创建很多不同的python环境,但是在使用jupyter notebook时并不能直接使用这些环境,jupyter提供的kernel还是默认的环境。下面介绍如何将一个新建的环境加入到jupyter中作为一个新的kernel。
使用conda创建一个新的环境,然后进入新环境,我这里以hello为例子
babao@babao:~$ conda create -n hello python=3.6
babao@babao:~$ source activate hello
(hello) babao@babao:~$
其中 ipykernel
是必须安装的,也可以直接安装 jupyter
,会自动包含 ipykernel
(hello) babao@babao:~$ conda install ipykernel
(hello) babao@babao:~$ sudo python -m ipykernel install --name hello
使用 sudo
提升权限之后,python会自动调用系统环境下的python,而不是当前环境下的python。如果系统环境下的python没有安装 ipykernel
,则会创建失败,给出以下提示
/usr/bin/python: No module named ipykernel
有两个解决办法
ipykernel
库方法2中为了得到当前环境的python路径,可以用 which
命令查看
(hello) babao@babao:~$ which python
/home/babao/anaconda3/envs/hello/bin/python
将之前的命令改为用当前环境下的python执行
(hello) babao@babao:~$ sudo /home/babao/anaconda3/envs/hello/bin/python -m ipykernel install --name hello
Installed kernelspec hello in /usr/local/share/jupyter/kernels/hello
成功添加kernel后就可以在jupyter notebook中使用
babao@babao:~$ jupyter kernelspec list
babao@babao:~$ sudo jupyter kernelspec remove hello
同样的原因,因为使用了 sudo
提升权限,如果在系统环境下找不到jupyter,则可以指定jupyter的路径