【问题标题】:import tensorflow works in jupyter notebook but not from command line. Using conda to install tensorflow and jupyter notebookimport tensorflow 在 jupyter notebook 中有效,但在命令行中无效。使用 conda 安装 tensorflow 和 jupyter notebook
【发布时间】:2020-05-17 14:52:03
【问题描述】:

我在 Jupyter notebook 中运行一个 python 脚本,它运行良好。我将笔记本转换为 python 文件,当我尝试从终端运行它时,我收到一条错误消息

>>> import tensorflow as tf
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'tensorflow'

我已经在 conda 环境中使用 conda 安装了 tensorflow 和 jupyter notebook。我在 Ubuntu 18.04 上。我正在尝试从环境中运行 python 脚本。当我给which python 时,我得到以下输出

/usr/bin/python

我有限的理解是,这可能是因为脚本在基础 python 上运行而 tensorflow 指向基础 python 无法访问的 anaconda 安装。如何从终端运行脚本?

【问题讨论】:

    标签: python tensorflow ubuntu conda


    【解决方案1】:

    看起来终端上的脚本正在使用与在 Jupyter Notebook 中执行的不同的 python 版本执行。由于正在使用conda,因此可以通过以下方法解决问题:

    1. 如果使用虚拟环境运行 Jupyter Notebook,您可以在终端使用conda activate &lt;name&gt; 激活虚拟环境,然后运行 ​​python 代码。
    [usr@usr]#conda activate myenv
    (myenv)[usr@usr]#
    
    1. 如果没有使用虚拟环境,可以使用conda activate 将默认的conda python 加载到PATH 变量中
    [usr@usr]#conda activate
    (base)[usr@usr]#
    

    在第 1 步和第 2 步中,我们可以使用 conda list 命令验证是否在该环境中安装了 tensorflow。

    或者,我们可以检查what python the Jupyter Notebook uses并在终端中运行指向同一个python的脚本。

    希望这会有所帮助。

    【讨论】:

    • 已经尝试过方法 1。我试图从启动 jupyter notebook 的虚拟环境中运行 python 脚本。从虚拟环境终端which python 显示/usr/bin/python,而从jupyter notebook 显示/home/thomas/anaconda3/envs/tf1p14/bin/python。当然,正如您所建议的,如果我指向 anaconda3 环境 python 并运行脚本,它就可以正常工作。
    • conda 环境激活时PATH 变量是否改变?在我的机器中,当我激活myenv 时,/path/to/anaconda3/envs/myenv/bin:/path/to/anaconda3/condabin 被添加到PATH
    • 我认为如果我遵循下面问题中的最佳解决方案,它可以解决我的问题*.com/questions/54429210/…
    最近更新 更多