Ubuntu 上的 Tensorflow 和 Anaconda?
Posted
技术标签:
【中文标题】Ubuntu 上的 Tensorflow 和 Anaconda?【英文标题】:Tensorflow and Anaconda on Ubuntu? 【发布时间】:2016-02-12 07:22:47 【问题描述】:在我的 Ubuntu 14.04 上,我使用“pip”安装了 tensorflow,正如 Tensorflow Installation instructions 中指定的那样,我通过在 python 中导入它来确保它可以正常工作并且确实可以工作。
然后,我安装了 Anaconda,它通过添加以下行来更改我的 .bashrc 文件:
export PATH="/home/sonny/anaconda2/bin:$PATH"
但是因为这个改变,现在它查看上面的 PATH,它不包含 tensorflow。现在我无法在我的 python 代码中导入 tensorflow。
什么是扩展 $PATH 环境变量以使其继续使用 anaconda2 中的所有内容但能够导入“tensorflow”的正确方法?
【问题讨论】:
你可以离开之前的 PATH 并添加这个(不覆盖)? @SalvadorDali 但如果 - 例如 - 在两个路径中都安装了 numpy 并且我尝试导入 numpy,这会导致一些问题吗? 试试吧。现在你可以看到其他方法肯定会导致一些问题。 您对 PATH 环境变量以及 python 如何导入模块感到困惑。当您运行 python 时,您的终端会在 PATH 上查找 python 可执行文件,该可执行文件将位于 anaconda 文件夹中。导入时,python 不引用 PATH,但(最终)看起来是依赖于实现的默认值。这对于 anaconda python 与系统 python 不同,因此它无法找到您在 anaconda 之前安装的模块(除非 anaconda 也有它们)。 [不确定是否将此作为评论或答案发布;选择前者,以免重复发布。] 我在导入安装在 venv 中的 TensorFlow(从源代码编译)时也遇到了问题。我在相关线程中发布了一个简单的(非 PIP)摘要:***.com/questions/35953210/… 【参考方案1】:我以不同的方式解决了这个问题! 我找到了一个将 tensorflow.whl 文件转换为 conda 包的链接,所以我继续使用以下命令安装它:
conda install -c https://conda.anaconda.org/jjhelmus tensorflow
它成功了,因为 $PATH 指向 anaconda 包,我现在可以导入它!
Source is here
【讨论】:
这个变通方法看起来不错。我也用过这个。谢谢。我想知道当谷歌推出不可避免的第一次更新时,这是否会成为一个问题。 @RagavVenkatesan 我想到那时我们将不得不等待更新再次转换为 conda 包。 不幸的是,这种方法没有得到更新的 tensorflow 包。 有谁知道是gpu版本吗? @SamarthBharadwaj GPU 版本需要从源代码构建,因为它专门配置了目标 GPU【参考方案2】:自 v0.10.0 起,tensorflow
是conda-forge
频道中社区维护的 conda 包。因此,可以直接使用以下命令安装:
conda install -c conda-forge tensorflow
TensorFlow documentation上的说明也更新了。
为了方便未来的更新,最好将conda-forge
频道添加到您的 conda 配置中:
conda config --add channels conda-forge
事实上,tensorflow=0.10.0rc0
是最近添加到 Anaconda default channel 中的,如果未指定 conda-forge
通道,则会安装它:
conda install tensorflow
【讨论】:
凹凸。这对我有用(Ubuntu 14.04,最新的 Anaconda for Python 2.7),但接受的答案已经过时并且不起作用。 这对我来说适用于 macOS 10.12,Anaconda for Python 2.7 不幸的是,这似乎只有 CPU 版本,而不是 GPU。 我使用 anaconda 通道安装 tensorflow-gpu,但我看到很多“TensorFlow 库未编译为使用 SSE4.1 指令,但这些在您的机器上可用并且可以加快速度CPU 计算。”警告。有没有办法检查 conda-forge 版本的 tf 编译是否与 anaconda 中的版本不同?【参考方案3】:我遇到了同样的问题,并决定重新开始最简单,先安装 Anaconda,然后再安装 TensorFlow。
【讨论】:
但这将如何解决问题呢? Tensorflow 没有向 bashrc 文件添加任何路径,所以它仍然会指向 anaconda 当您 pip-install TensorFlow 时,它会进入任何 Python 最新版本的站点包。如果您之后安装 Anaconda,Python 发行版的位置会发生变化,并且它不会知道您之前安装 TensorFlow 的位置。如果您按其他顺序执行此操作,则 TensorFlow 将成为 Anaconda 发行版的站点包。它与 $PATH 没有太大关系。我对此的理解可能并不完美,但它对我有用! 我刚刚尝试了您的建议。它对我不起作用。看来我需要让路径环境变量指向 tensorflow 库,同时仍然指向 anaconda 包 正如 gauss256 所建议的,您不需要触摸 PATH(也不需要 PYTHONPATH,这是 python 在导入模块时查看的位置)。如果您在安装 anaconda(并添加到您的 PATH)后 pip-install TensorFlow,它应该可以工作。如果没有,你的终端会话有些混乱 - 重新启动你的终端,检查你的 bashrc,重新安装,重置,...... 其实,你可以在安装anaconda后再次pip安装它,你会在两个地方都有它(在anaconda的python文件夹和系统python文件夹中)。也许是最好的方式。【参考方案4】:我怀疑 pip 是在 cpython 中为您提供 TensorFlow 安装,而不是 anaconda。
virtualenv 怎么样?
# Create env
$ virtualenv --python=/path/to/anaconda /path/to/your/env
# Activate env
$ source /path/to/your/env/bin/activate
# Install Tensorflow
$ pip install https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.5.0-cp27-none-linux_x86_64.whl
【讨论】:
【参考方案5】:通过以下命令安装 tensorflow。 Conda 将负责安装过程。
conda install -c conda-forge tensorflow
【讨论】:
【参考方案6】:我用这个解决了这个问题:
conda create --name=tensorenv python=3.4
source activate tensorenv
【讨论】:
【参考方案7】:其实TensorFlow官网把安装的每一个细节都做了。 操作系统Windows、Mac OS、Ubuntu; GPU 或仅 CPU 的环境,您可能会遇到的问题的每一个细节。
看看这个
Installing TensorFlow on Ubuntu with Anaconda
你不会后悔的。
一旦您访问,您可能还会发现类似
Installing TensorFlow on Windows with Anaconda
【讨论】:
以上是关于Ubuntu 上的 Tensorflow 和 Anaconda?的主要内容,如果未能解决你的问题,请参考以下文章
sh Paperspace上ubuntu 16上的python-2/3的Tensorflow + opencv设置
在Windows上的Ubuntu上用Bash更新Python库