如何在Jupyter Notebook中使用Python虚拟环境?

王树义 玉树芝兰 2017-09-22

如何在使用Jupyter Notebook时,解决Python虚拟环境间的切换问题?本文一步步帮你拆解。希望你能够避免踩坑的痛苦,把更多的时间花在愉快的编程上。

痛点

Python目前有两个主版本并存,这很让人苦恼。

一般人对于软件,总是抱持着“喜新厌旧”的心态。见到小红点儿,就忍不住升级。然而对Python来说,这条规律不大适用。

虽然Python 3有许多优于Python 2的特性,但是Python 2的生态系统更为完善,支持的包更多。因为生态系统内部的依赖关系,许多软件包的运行说明会直接指定“仅适用于Python 2.7版本”。

所以,你会在不同的应用场景下切换这两种Python版本。

我本人比较懒,哪个版本支持的软件包多,更适合我使用,我就用哪个。所以,我安装Anaconda这个Python集成运行环境的时候,选择的是2.7版本。

但是近几天,我遇到了点儿麻烦。

为了进一步学习和掌握学Tensorflow,我买了本书。

这本书配套代码的调试环境,是Jupyter Notebook,Python版本是3.6。

我自然不可能删除掉原先安装的Anaconda,重装一个3.6版本。那样我日常工作就无法进行了。

我选择的方式,是安装虚拟环境。

虚拟

在虚拟环境里,各种软件包的版本,都由你来指定。它们和系统默认Python环境是相互隔离的,因此互不干扰。

我给这个用于学习Python 3版本Tensorflow的虚拟环境起了个好记的名字,叫做tfpy3。

进入终端环境,使用Anaconda的环境创建命令,一行代码就可以创建成功。

conda create -n tfpy3 python=3

我在~/learn/实验目录下创建了一个名为tensorflow的文件夹。创建好后进入。

cd learn/tensorflow

下面我们呼唤刚才创建的虚拟环境:

source activate tfpy3

这时你会发现终端提示符前面出现了特定虚拟环境标识。

虚拟环境顺利加载。

在这个虚拟环境下,我们就可以安装针对Python 3.6的最新版Tensorflow了。

pip install tensorflow

好了,1.3.0版本tensorflow安装成功。下面我们就呼叫Jupyter Notebook,来编码吧!

jupyter notebook

咦?为什么创建新笔记本的选项中,只有默认的Python 2和后来安装过的R?

tfpy3虚拟环境哪里去了?根本找不到!

插件

头痛半晌,突然想起古人那句:

吾尝终日而思矣,不如须臾之所学也。

对啊,上网搜!

查询了一下,很快发现了解决方案。原来为了让Jupyter Notebook支持虚拟运行环境,需要在Anaconda里安装一个插件。

回到终端下面,用C-c退出目前正在运行的Jupyter Notebook Server,然后执行:

conda install nb_conda

再重新开启Jupyter Notebook:

jupyter notebook

这下我们就能看到差别了——除了最新安装设定的tfpy3外,之前用Anaconda设置过的其他虚拟环境也都可以在此选择使用。太棒了!

我们选择刚刚创建的tfpy3环境。

执行:

import tensorflow as tf
tf.VERSION

第二行语句是反馈tensorflow的版本。

1.3.0,没错!这就是刚刚我们安装的最新Tensorflow版本。

下面就是愉快的编码时间了。加油!

讨论

你在使用Python的过程中,遇到过切换版本的问题吗?你是怎么解决的?有没有更为便捷的方法?你更喜欢Python 2还是3?为什么?欢迎留言,分享给大家,我们一起交流讨论。

如果你对我的文章感兴趣,欢迎点赞,并且微信关注和置顶我的公众号“玉树芝兰”(nkwangshuyi)。

如果本文可能对你身边的亲友有帮助,也欢迎你把本文通过微博或朋友圈分享给他们。让他们一起参与到我们的讨论中来。