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

  1. 启用虚拟环境 首先,使用命令

    source activate tensorflow
    

    将当前的python变为virtualenv里python,可以用which python来查看是否变换。变换后命令行前会有个(tensorflow)

  2. 运行

    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。

  3. 移动该文件到制定路径下:

    mkdir -p ~/.ipython/kernels
    mv ~/.local/share/jupyter/kernels/pythonX ~/.ipython/kernels/\<kernel_name\>
    

    以我自己的环境为例,我这里将X修改为2,将\<kernel_name\>修改为tensorflow

  4. 修改显示名

    gedit ~/.ipython/kernels/<kernel_name>/kernel.json
    

    将默认的display_name改为你想改的,这样在jupyter notebook的kernel里就有这个你改过后的选项,不改的话,以我的环境为例,默认显示名是python 2,jupyter notebook里本来就有个python 2,这时两个python 2会让我分不清,所以改一下这个参数,我这里改为tensorflow

本文参考链接.

results matching ""

    No results matching ""