2016-03-03 63 views
8

提前道歉,我认为这个问题相当令人困惑!通过Jupyter使用TensorFlow(Python 3)

我想通过Jupyter和Python3内核来使用TensorFlow。

但是,当将Python2或Python3指定为Jupyter内核时,命令import tensorflow as tf将返回错误:ImportError: No module named tensorflow

  • 我在我的Mac上安装了Python 2和Python 3,并且可以通过终端访问 两个版本。
  • 我安装了TensorFlow for Python 3,但是我只能通过终端上的Python 2访问它。

因此,这个问题实际上是两个方面:

  1. 我想要得到TensorFlow与Python3
  2. 工作......这应该引起TensorFlow与Jupyter工作Python3终端上。
+0

您是否安装了tensorflow?你能够从python解释器运行'import tensorflow'吗? – fabrizioM

回答

14

我有同样的问题,并使用教程Using a virtualenv in an IPython notebook解决它。我会带你走过我采取的步骤。

我正在使用Anaconda,并使用these instructionstensorflow.org上安装了一个新环境tensorflow。在此之后,这里是我是如何得到tensorflow在Jupyter笔记本工作:

  1. 打开终端
  2. 运行source activate tensorflow。您现在应该在提示的开头看到(tensorflow)
  3. 现在,我们都在tensorflow环境中,我们想在这个环境中安装ipythonjupyter:运行

    conda install ipython 
    

    conda install jupyter 
    
  4. 现在按照上面链接的教程中的说明。我会在这里重复一遍,增加更多的信息。首先运行

    ipython kernelspec install-self --user 
    

    对我来说,结果是Installed kernelspec python3 in /Users/charliebrummitt/Library/Jupyter/kernels/python3

  5. 运行以下命令:

    mkdir -p ~/.ipython/kernels 
    

    然后运行与<kernel_name>由您选择的名称替换以下(我选择tfkernel)和替换第一条路径(即,~/.local/share/jupyter/kernels/pythonX)在步骤4中产生的路径:

    mv ~/.local/share/jupyter/kernels/pythonX ~/.ipython/kernels/<kernel_name> 
    
  6. 现在,你会看到一个新的内核,如果你打开一个Jupyter笔记本电脑,从菜单中选择Kernel -> Change kernel。但是新的内核将和以前的内核具有相同的名称(对我而言,它被称为Python 3)。为了让你的新内核的唯一名称,在

    终端运行
    cd ~/.ipython/kernels/tfkernel/ 
    

    ,然后运行vim kernel.json编辑文件kernel.json,让你从默认的(Python 3)到一个新的名字代替"display_name"值(我选择称它为"tfkernel")。在命令模式下,通过输入:wq保存并退出vim

  7. 打开一个新的Jupyter笔记本,并输入import tensorflow as tf。如果你没有得到ImportError,那么你已经准备好了!
+0

如果翻译成“windows”语言,这将非常有用。许多工业企业使用/需要第二个最新的Microsoft操作系统。 – EngrStudent

+0

这样一个救生员..我能够在RHEL中运行时导入张量流,没有“conda安装jupyter/ipython”一旦我来源激活tensorflow。当我进入AWS Linuximage时,它需要我来做这一步。感谢分享。我没有做“ipython kernelspec install-self -user”,但我会保留所有的二进制文件加载 – Abhi

+0

谢谢,但遵循Mac El Capitan的所有说明(很多次!),仍然存在'ImportError'异常抛出。它在Python的CLI中导入'tf',但在笔记本中没有运气!正在尝试最后3个小时,也许是放弃的时间了.. – alchemication