在jupyter notebook上添加使用python虚拟环境

在命令终端输入jupyter notebook,那么在浏览器中访问http://localhost:8888/,就可以看到如下界面

Paste_Image.png

可以看到我这里的运行环境是Python2和Python3,那么怎么添加其它环境呢?先使用conda info -e查看我已有的虚拟环境

Paste_Image.png

现在我想在jupyter中使用名为mjpy27这个内核,怎么办呢?其实jupyter的ipykernel是使用一个叫kernel.json的文件管理的,mac os 或者linux平台可以通过

find . -name "kernel.json"

找到该文件的位置。如下图所示

Paste_Image.png

从图中我们可以看到差不多有三种类型的位置,要修改哪个位置的json文件才管用呢?眼尖的同学可以看到./Library/Jupyter/kernels/python*/kernel.json这类位置有三个json文件,经过实验发现需要在在./Library/Jupyter/kernels/目录下手动创建一个文件夹,然后创建一个名为kernel.json的文件,让该文件和已有的虚拟环境相关联,即可使用该虚拟环境。该json文件的内容大概如此:

{
 "display_name": "mjpy27", 
 "language": "python", 
 "argv": [
  "/Users/resolvewang/anaconda3/envs/mjpy27/bin/python", 
  "-m", 
  "ipykernel_launcher", 
  "-f", 
  "{connection_file}"
 ]
}

再看看我们jupyter中的解释器内核,可以看到mjpy27被添加进去了。

可能出现kernel 失联的问题,解决方法参考如下

升级ipykernel

pip install --upgrade ipykernel

若已安装ipykernel,执行

conda update ipykernel

Paste_Image.png

Linux中设置方法大致和mac上相同。windows中的话,kernel.json文件的位置位于

C:\Users\Administrator\AppData\Roaming\jupyter\kernels\python*\kernel.json

目录下,需要多个虚拟环境,就手动创建多个python文件夹和kernel.json*文件。

上面是从最通用的方法,其实有更加简单的方法。如果你不想手动修改kernel.json文件的话,可以直接为你想要的环境安装ipykernel包。即:

conda install -n py27 ipykernel

然后激活这个环境,输入

python -m ipykernel install --user

这样就可以在jupyter中使用py27这个环境了。

如果所需版本并不是已有的环境,可以直接在创建环境时便为其预装ipykernel。

conda create -n py27 python=2.7 ipykernel

不过这两种方式,只能为Jupyter安装一个Python2和一个Python3的环境。从上面过程可以看到,我们手动生成kernel.json的时候,可能会创建多个python*(或者其他名字)的文件夹,但是使用上述命令(conda/pip install ipykernel)快捷创建的时候它不会生成除了python2python3以外的文件夹,所以最多只能创建两个虚拟环境。


除此之外,jupyter notebook还可以远程运行,为了安全,你可以在远程访问的时候为jupyter设置一个密码,这里就不多讲了,因为网上很多资料都写了,有兴趣的可以google一下。




参考:

https://www.jianshu.com/p/f70ea020e6f9
https://stackoverflow.com/questions/35673530/i-am-using-jupyter-notebook-ipython-3-on-windows-whenever-i-am-starting-my-pyt

猜你喜欢

转载自blog.csdn.net/wzt_gjt/article/details/81591340