Using a virtualenv in an IPython notebook
使用Anaconda作为我的python环境,搭建了tensorflow,theano这样的深度学习框架,为避免相互之间依赖的一些库出错,导致我整个Anaconda不能用,所以我在搭建环境的时候,使用命令
conda create -n tensorflow python=2
来创建一个虚拟的环境,这样我这个环境被我玩坏了,不影响我Anaconda的使用。
由于tensorflow经常给出一些ipynb
格式的文件,所以需要用jupyter notebook,但是如果不在虚拟环境tensorflow
里安装jupyter, jupyter notebook 里import tensorflow
的时候会报错,说没有该模块,此时如果你直接使用jupyter notebook
命令,然后import tensorflow
依然回报同样的错误,因为你需要先source activate tensorflow
才能调用虚拟环境tensorflow
里的jupyter,所以本文下面的方法就解决了这个问题,不需要每次都source activate tensorflow
。
启用虚拟环境 首先,使用命令
source activate tensorflow
将当前的python变为virtualenv里python,可以用
which python
来查看是否变换。变换后命令行前会有个(tensorflow)
。运行
ipython kernelspec install-self --user
在命令行里看到该信息,则该命令运行成功 注意:在使用该命令前使用
which ipython
看看你的virtualenv环境有有没有装ipython,没有的话,直接使用conda install jupyter
,这样就会安装了一些需要的东西了。[InstallNativeKernelSpec] Installed kernelspec pythonX in /home/username/.local/share/jupyter/kernels/pythonX
其中
X
取决与你用的python版本,你用的是python2.7,则这里的X就是2。移动该文件到制定路径下:
mkdir -p ~/.ipython/kernels mv ~/.local/share/jupyter/kernels/pythonX ~/.ipython/kernels/\<kernel_name\>
以我自己的环境为例,我这里将
X
修改为2
,将\<kernel_name\>
修改为tensorflow
。修改显示名
gedit ~/.ipython/kernels/<kernel_name>/kernel.json
将默认的
display_name
改为你想改的,这样在jupyter notebook的kernel里就有这个你改过后的选项,不改的话,以我的环境为例,默认显示名是python 2
,jupyter notebook里本来就有个python 2
,这时两个python 2
会让我分不清,所以改一下这个参数,我这里改为tensorflow
。
本文参考链接.