我开始使用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?如何链接?
答案 0 :(得分:1)
这个问题有一些细微之处,有助于澄清。每个笔记本都绑定到一个特定的内核。随着最新的4.0版Anaconda,我们(Continuum)捆绑了一个Conda环境感知的扩展,它将尝试将Notebook与特定的Conda环境相关联。如果找不到,则将使用“默认”环境(或“根”环境)。在你的情况下,你有一个笔记本,我猜,询问的默认(或“根”)环境,所以Jupyter在那个环境中启动一个内核,而不是在启动Jupyter服务器的环境中。您可以通过转到 Kernel-> Change kernel 菜单并选择 tensorflow 环境的内核来更改关联的内核,如下所示:
或者当你创建一个新的Notebook时,你可以选择那个Conda环境的内核应该支持Notebook(注意一个Conda环境可以有多个内核可用,例如Python和R):
我们知道这可能是混淆的常见原因,特别是在共享笔记本时,因为共享它的人要么使用“默认”内核(可能只称为“Python”),要么使用Conda环境一个不同的名字。我们正在研究如何使这更顺畅,更少混淆,但如果您对预期/期望的行为有建议,请告诉我们(GitHub问题https://github.com/ContinuumIO/anaconda-issues/issues/new是最好的方法)