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

如何在使用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)

原文发表时间:2017-09-22

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏吉浦迅科技

DAY25: 阅读硬件的多线程

1264
来自专栏漫漫全栈路

【译】助你成功搭建云应用的12条方法

原文作者:Rafael Benevides 原文地址:https://dzone.com/articles/12-factors-to-cloud-succes...

3049
来自专栏IT派

Python实现文字转语音功能

这是一篇简单的Python文字(汉字)转语音教程,当然对于其他语言工具在实现的方法上也是一样的 。

3482
来自专栏晨星先生的自留地

MS17010之批量的一些思路

5355
来自专栏熊二哥

企业模式和设计模式快速入门

相信大家对GOF的23个设计模式和Martin Fowler的企业应用架构模式都有过了解,这部分的内容和知识非常驳杂,不过真正常用的模式并不多,比如单例模式、策...

1997
来自专栏Java技术栈

分享18道Java基础面试笔试题(面试实拍)

上图来自Java技术栈微信群里的群友分享,看起来比较基础,但不一定人人都答得上来。 图片比较模糊,小编把题目进行了文字化。 1.你最常上的两个技术站和最常使用的...

47911
来自专栏极客生活

从计算机体系结构到高性能编程实践(一)

上来先推荐一本书,《计算机体系结构:量化研究方法(第五版)》,英文能力比较好的建议阅读原版。

1102
来自专栏FreeBuf

逆向工厂(一):从hello world开始

* 本文原创作者:追影人,本文属FreeBuf原创奖励计划,未经许可禁止转载 前言 从本篇起,逆向工厂带大家从程序起源讲起,领略计算机程序逆向技术,了解程序的运...

4158
来自专栏何俊林

你是否真的适合搞NDK开发?

最近很多人说,Android越来越不好找工作了,学习NDK开发会不会好点,今天就聊聊这个问题。是否应该选择学NDK? 1 哪些场景下要用到NDK开发? 跨平台的...

2155
来自专栏老九学堂

【编程解惑】Java、JavaEE、JavaSE、Java Web、JavaScript有什么区别?

很多有想入门Java的小伙伴在听到Java那么多叫法的时候,是不是表示一脸懵逼,今天老九君就给大家捋一捋Java大家族间的分门别类。 ? Java分为:Jav...

3979

扫码关注云+社区

领取腾讯云代金券