jupyter笔记本在启动它的conda环境中不使用python

时间:2016-09-10 08:04:48

标签: ipython anaconda jupyter jupyter-notebook

我开始使用udacity深度学习课程并且正在设置环境。我认为内核笔记本使用的不是来自conda环境的python。以下是我尝试过的一些结果。

开始使用conda环境

source activate tensorflow

在Linux终端的conda环境中使用python终端:

import sys
sys.executable
>>> '/home/username/anaconda2/envs/tensorflow/bin/python' 

此外,使用python shell导入tensorflow

在conda环境中使用ipython终端,它显示相同的可执行路径。和tensorflow在ipython shell中导入。

然而,当我在笔记本中执行一个单元格时,使用jupyter笔记本时,找不到tensorflow模块。从笔记本中产生的终端也显示了在anaconda / bin directoty中的全局python安装的可执行路径,而不是我创建的环境,我创建了笔记本

'/home/username/anaconda2/bin/python'

然而,shell的conda环境仍然是tensorflow

conda info --envs
# conda environments:                                                                                                              
#                                                                                                                                  
tensorflow            *  /home/username/anaconda2/envs/tensorflow                                                                     
root                     /home/username/anaconda2

这是否意味着内核链接到此位置的python安装而不是conda env?如何链接?

1 个答案:

答案 0 :(得分:1)

这个问题有一些细微之处,有助于澄清。每个笔记本都绑定到一个特定的内核。随着最新的4.0版Anaconda,我们(Continuum)捆绑了一个Conda环境感知的扩展,它将尝试将Notebook与特定的Conda环境相关联。如果找不到,则将使用“默认”环境(或“根”环境)。在你的情况下,你有一个笔记本,我猜,询问的默认(或“根”)环境,所以Jupyter在那个环境中启动一个内核,而不是在启动Jupyter服务器的环境中。您可以通过转到 Kernel-> Change kernel 菜单并选择 tensorflow 环境的内核来更改关联的内核,如下所示:

enter image description here

或者当你创建一个新的Notebook时,你可以选择那个Conda环境的内核应该支持Notebook(注意一个Conda环境可以有多个内核可用,例如Python和R):

enter image description here

我们知道这可能是混淆的常见原因,特别是在共享笔记本时,因为共享它的人要么使用“默认”内核(可能只称为“Python”),要么使用Conda环境一个不同的名字。我们正在研究如何使这更顺畅,更少混淆,但如果您对预期/期望的行为有建议,请告诉我们(GitHub问题https://github.com/ContinuumIO/anaconda-issues/issues/new是最好的方法)