提问者:小点点

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


我已经开始与udity深度学习课程和设置环境。我认为笔记本使用的内核没有使用conda环境中的python。以下是我尝试过的一些结果。

开始康达环境

source activate tensorflow

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

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

此外,tensorflow也可以通过python shell导入

对于conda环境中的ipython终端,它显示相同的可执行路径。tensorflow被导入到ipython外壳中。

但是使用jupyter笔记本,当我在笔记本中执行一个单元格时,无法找到tenstorflow模块。此外,从笔记本生成的终端显示了全局python安装的可执行路径,该路径位于anaconda/bin Directoty中,而不是我创建的环境,从那里我开始了笔记本

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

然而,外壳的环境仍然是张量流

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

这是否意味着内核在这个位置链接到python安装,而不是在conda env中?如何链接相同的?


共1个答案

匿名用户

这个问题还有一些细微差别需要澄清。每个笔记本都绑定到一个特定的内核。随着最新的4.0版本的Anaconda,我们(连续体)捆绑了一个Conda环境感知扩展,它将尝试将笔记本与特定的Conda环境相关联。如果找不到,则将使用默认环境(或根环境)。在你的例子中,我猜你有一个笔记本,要求默认(或“根”)环境,所以Jupyter在那个环境中启动内核,而不是在启动Jupyter服务器的环境中。您可以通过转到内核-

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

我们理解,这可能是造成混淆的常见原因,尤其是在共享笔记本时,因为共享它的人要么使用“默认”内核(可能仅称为“Python”),要么使用具有不同名称的Conda环境。我们正在研究如何使这一过程更顺畅、更少混乱,但如果您对预期/期望的行为有建议,请让我们知道(GitHub问题,请发送至https://github.com/ContinuumIO/anaconda-issues/issues/new(这是最好的方法)