如何在使用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)。
如果本文可能对你身边的亲友有帮助,也欢迎你把本文通过微博或朋友圈分享给他们。让他们一起参与到我们的讨论中来。