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-nightly
和 tf-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:“pip install tensorflow”失败