Tensorflow 安装失败,“模块的编译时版本 3.5 与运行时版本 3.6 不匹配”

Posted

技术标签:

【中文标题】Tensorflow 安装失败,“模块的编译时版本 3.5 与运行时版本 3.6 不匹配”【英文标题】:Tensorflow install fails with "compiletime version 3.5 of module does not match runtime version 3.6" 【发布时间】:2018-04-23 19:49:39 【问题描述】:

我尝试从 pip 安装:

pip3 install --user --no-cache https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-1.4.0-cp36-cp36m-linux_x86_64.whl

然后尝试导入并得到:

 Using TensorFlow backend.
  /usr/lib64/python3.6/importlib/_bootstrap.py:205: RuntimeWarning: 
  compiletime version 3.5 of module 
  'tensorflow.python.framework.fast_tensor_util' does not match runtime 
  version 3.6
    return f(*args, **kwds)

  2017-11-10 09:35:01.206112: I 
  tensorflow/core/platform/cpu_feature_guard.cc:137] Your CPU supports 
  instructions that this TensorFlow binary was not compiled to use: SSE4.1 
  SSE4.2 AVX

问题:

    我不明白为什么车轮显示 3.6,但我收到有关 3.5 的警告

    我想编译以优化我的 cpu,所以我可以使用 pip 从源代码而不是二进制轮安装吗?

【问题讨论】:

在 shell 中发布arch 命令的结果。很可能不是x86_64 是的,arch 说 x86_64,这不是这里的问题。 【参考方案1】:

RuntimeWarning:模块“tensorflow.python.framework.fast_tensor_util”的编译时版本 3.5 与运行时版本 3.6 不匹配

这是一个known issue,它是prioritized,很快就会修复。现在的解决方法是使用 python 3.5。

更新:

夜间 tensorflow 构建中的问题 has been fixed:tf-nightlytf-nightly-gpu 现在有一个为 Linux 从头构建的 python3.6 二进制文件。”

即,以下命令应该适用于 python 3.6:

# tf-nightly or tf-nightly-gpu
pip3 install tf-nightly

您的 CPU 支持未编译此 TensorFlow 二进制文件以使用的指令:SSE4.1 SSE4.2 AVX

这个警告来自于默认的 tensorflow 发行版在编译时没有 CPU 扩展支持(更多关于这个here)。如果你想获得 CPU 优化的 tensorflow 包,你唯一的选择是build it yourself。这有点乏味,但绝对可行。该构建将生成 wheel 文件,您可以使用它来安装它

pip3 install /path/to/the/tensorflow.whl

但是,如果您只是想抑制警告,则可以这样做:

import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'

【讨论】:

那么,这个警告是无害的,所以我们有能力压制它吗?如果是的话,有什么方法可以永久抑制它,而不是每次我想使用 tensorflow 时都做os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' @Kristada673 是的,这个答案中提到了 - ***.com/a/47227886/712995 从命令行执行 export TF_CPP_MIN_LOG_LEVEL=2 我指的是警告RuntimeWarning: compiletime version 3.5 of module 'tensorflow.python.framework.fast_tensor_util' does not match runtime version 3.6。当我执行export TF_CPP_MIN_LOG_LEVEL=2 时,此警告不会消失。它是无害的吗?如果是,我怎么能忽略它?如果没有,我该如何解决? @Kristada673 我明白了。不,这个警告不会那么容易消失。似乎没有破坏 tf,但某些内部包不会导入,你永远不知道哪个函数可能会失败。所有当前可用的修复都在答案中【参考方案2】:

我遇到了同样的问题,我可以通过安装 1.3 版本而不是使用 1.4 的 tensorflow 来解决它。使用以下命令执行此操作。

 pip3 install tensorflow==1.3.0

【讨论】:

【参考方案3】:

我遇到了同样的问题,我通过以下方式解决了它:

pip install --ignore-installed tensorflow

出现问题是因为我之前使用 python 3.5 编译了本地版本的 tensorflow(以启用某些 CPU 功能)。我最近安装了python 3.6,新的tensorlfow已经支持了这些CPU特性,所以我只安装了正式版。

更新

在对tensorflow 进行一些更新后,上述方法不再有效。

另一种解决方法是使用anaconda等虚拟环境来创建python3.5环境:

conda create -n py35 python=3.5
source activate py35
pip install tensorflow

要使用 ipython 或 jupyter notebook,请务必在虚拟环境中安装 ipykernel:

pip install ipykernel

【讨论】:

【参考方案4】:

只需安装 1.3 版本的 tensorflow。问题解决了。

pip install tensorflow==1.3.0

【讨论】:

【参考方案5】:

解决方案 1. 我解决这个问题的方法是降级到最新的python3.5,去python.org下载最新的Python3.5,安装它然后使用normalpip3 install tensorflow如果不尝试第二种解决方案应该可以解决问题.

方案2(也需要从python3.6降级到python3.5 我使用Pycharm 解决了这个问题,我在 pycharm 编辑器中创建了一个项目,然后我将 Project Interpreter 从 python3.6 更改为 python3.5,为此也可以转到 File > Preferences 搜索 Project Interpreter,然后从下拉菜单从 python3.6 更改为 python3.5 点击 Apply 等待操作完成

然后在同一窗口中使用 + 图标

将出现一个窗口,您可以在不使用 pip 的情况下轻松搜索和安装 python 库,在我们的例子中,我们需要 tensorflow,所以只需搜索 tensorflow,在搜索结果中选择 tensorflow 并单击安装包,这将安装包

瞧,你准备好了,现在你的 python3.5 上安装了 tensorflow,记住这一点。

【讨论】:

【参考方案6】:

现在您可以使用低于 3.6.x 的 python 版本,因为现在 Tensorflow 1.4.0 不能与 python 3.6.x 一起正常工作。它肯定会奏效。

【讨论】:

【参考方案7】:

在 ubuntu 17.10 上通过运行解决了这个问题

$ conda install tensorflow

【讨论】:

我还发现通过使用python 3.6.3安装虚拟环境然后在安装tensorflow之前激活环境,问题得到解决。 $conda create -n tensorflow python=3.6.3 Anaconda --y$conda update conda$source activate envname$conda install tensorflow【参考方案8】:

我使用 tensorflow 1.4.0,遇到同样的问题。但你现在可以使用 tensorflow 1.6.0。

【讨论】:

以上是关于Tensorflow 安装失败,“模块的编译时版本 3.5 与运行时版本 3.6 不匹配”的主要内容,如果未能解决你的问题,请参考以下文章

Windows下首次安装TensorFlow失败

Windows 上的 TensorFlow:“pip install tensorflow”失败

Tensorflow 2.1.0 - DLL 加载失败 - windows cpu

导入具有GPU支持的TensorFlow时DLL加载失败

Centos(腾讯云) 安装Tensorflow失败

Centos(腾讯云) 安装Tensorflow失败