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

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

jupyter notebook怎么写python代码_如何在Jupyter Notebook中使用Python虚拟环境?相关推荐

  1. linux python开发环境_如何在Linux系统中搭建Python编程环境

    1 在大多数的Linux系统中,基本上都默认安装了Python,也就是说,在Linux的系统中基本上是不需要安装什么软件,就可以使用Python. 下面以ubuntu操作系统为例,看看如何在Linux ...

  2. k邻近算法python代码_机器学习算法之K近邻法-Python实现

    一.算法简介 k近邻法(k-nearest neighbor,k-NN)是一种基本的分类方法,输入的是实例的特征向量,对应于特征空间的点,输出结果为实例的类别,可以取多类.对于训练集来说,每个实例的类 ...

  3. bp神经网络预测python代码_机器学习之多层神经网络(附Python代码和数据)

    1 引言 多层神经网络,Multiple-layers Perceptron (MLP),又被称为多层感知机,是机器学习中深度学习的典型算法.关于多层神经网络的算法原理,我们在Stata和R实现的文章 ...

  4. 计算营业额python代码_真香还是假香,Python处理分析128张Excel表格竟然不到3秒?| 附案例数据集...

    原标题:真香还是假香,Python处理分析128张Excel表格竟然不到3秒?| 附案例数据集 作者:吹牛Z 本文转自公众号:数据不吹牛 更新完Pandas基础教程,后台有不少旁友留言,想要了解怎么用 ...

  5. python代码怎么设置,如何设置PyCharm中的Python代码模版(推荐)

    在MacOs运行的PyCharm中,执行python文件,如果不指定python文件字符编码会报错: SyntaxError: Non-ASCII character "xe6" ...

  6. 读懂python代码_读懂花里胡哨的14行Python代码!

    最近在项目里发现一段代码,初看比较难看懂,细看,也还是比较难看懂.遂研究了一下,证实了这段代码确实,没啥作用,遂删之.记录在下. 去掉几个用于封装的函数,保留最小代码后,剩下以下14行代码.你能说出这 ...

  7. 数学建模python代码_主题模型 LDA 入门(附 Python 代码)

    一.主题模型 . m! g4 ~. ^3 |% A# f在文本挖掘领域,大量的数据都是非结构化的,很难从信息中直接获取相关和期望的信息,一种文本挖掘的方法:主题模型(Topic Model)能够识别在 ...

  8. 怎么在windows安装python模块_如何在windows环境下安装python里的模块

    在python包管理工具常2113用的有distribute.setuptools.easy_install和pip 目前最常5261用的就是pip了! ip 是安装python包的工具,提4102供 ...

  9. 秒表计时器开始计时代码_如何在Windows 10中设置计时器,警报和秒表

    秒表计时器开始计时代码 For whatever reason, Windows did not include alarms, timers, and stopwatches until Windo ...

最新文章

  1. 用Kotlin在IntelliJ Idea中无法生成 spring-configuration-metadata.json 文件
  2. 字节流数据的写出(输出)和读取(输入)
  3. Linux 查看当前用户id和组id
  4. POJ1087DFS+匈牙利或者DINIC
  5. C++ 引用通过代码例子理解
  6. freeRtos学习笔(3)临界区管理
  7. linux查看目录大小
  8. Oracle笔记 十四、查询XML操作、操作系统文件
  9. Little Pony and Elements of Harmony(CF 453 D)
  10. python中event的用法_Python编程之event对象的用法实例分析
  11. angularjs获取上一个元素的id_DOM(1)-DOM概念和获取元素
  12. Android anr 产生的原因和如何避免
  13. 反爬机制能绕过?动态ip代理来教你怎么做
  14. 【idea使用】主题文字修改
  15. 趋势追踪交易课堂:复盘的意义和方法
  16. 51951-04-3,Hydroxy-PEG2-CH2CO2H sodium salt羟基可以进一步衍生或替换为其他反应性官能团
  17. LeetCode 263 Ugly Number(丑数)
  18. Qt 开源项目收集大全
  19. U盘安装Windows10系统报错无法打开文件install.wim原因及解决办法
  20. vss服务器的简单使用

热门文章

  1. javascript学习之void(0)的作用
  2. Search Engine XSS Worm
  3. ASP注入详细命令40条
  4. oracle备份集注册,OracleRMAN将备份集重新注册到控制文件说明
  5. redis 哨兵 异步_redis 使用历程
  6. python类属性初始化_Python:如何模拟类属性初始化函数
  7. Ivan and Powers of Two CodeForces - 305C(set)
  8. oracle 分组排序后取第一条_关于oracle中位图索引的探讨:概念、原理、优缺点...
  9. java集群session共享_分布式/集群下session共享方案汇总
  10. php本地怎么接受小程序图片,怎么把本地图片当作小程序背景