Tensorflow(仅限CPU)安装错误| Ubuntu 14.10 | numpy 1.8.2

时间:2017-01-01 13:45:40

标签: python python-2.7 ubuntu numpy tensorflow

我正在我的Ubuntu 14.10中安装Tensorflow。我以前安装了 numpy scipy sklearn 以及 ipython-notebook 。我按照Tensorflow.org上的官方文档(pip installation)。我的tensorflow安装目录的位置是 /usr/local/lib/python2.7/dist-packages 。我在Ubuntu终端中执行import tensorflow as ts时出现以下错误。

>>> import tensorflow as tf
RuntimeError: module compiled against API version 0xa but this version of numpy is 0x9
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/__init__.py", line 24, in <module>
    from tensorflow.python import *
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/__init__.py", line 60, in <module>
    raise ImportError(msg)
ImportError: Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/__init__.py", line 49, in <module>
    from tensorflow.python import pywrap_tensorflow
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/pywrap_tensorflow.py", line 28, in <module>
    _pywrap_tensorflow = swig_import_helper()
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/pywrap_tensorflow.py", line 24, in swig_import_helper
    _mod = imp.load_module('_pywrap_tensorflow', fp, pathname, description)
ImportError: numpy.core.multiarray failed to import


Error importing tensorflow.  Unless you are using bazel,
you should not try to import tensorflow from its source directory;
please exit the tensorflow source tree, and relaunch your python interpreter from there.

根据错误,它必须与numpy。我尝试使用命令sudo pip install --upgrade numpy升级numpy,但这似乎没有升级我现有的numpy版本,问题仍然存在。

解决此问题的任何建议?

3 个答案:

答案 0 :(得分:5)

正如我在描述中提到的,我以前安装了numpy。为了让TensorFlow正常运行numpy必须在那里。我的机器中有两个numpy版本。

当我输入

>> import numpy
>> print numpy.__version__

我得到1.8.something作为我的numpy版本。根据我读过的帖子,这个有些陈旧,并不同意Tensorflow,所以我尝试通过

升级numpy版本
pip install numpy --upgrade

命令。我仍然通过在python控制台中执行上述命令获得1.8。*作为我的numpy版本。我接下来要做的是将我的numpy定位在python中并从那里移除numpy。这些是我用来定位和删除numpy的命令。

numpy.__path__ #to locate numpy location/path

然后我退出python控制台并在Ubuntu终端执行以删除numpy。

sudo rm -rf /path_to_numpy/numpy  #this removed numpy 1.8.* version 

然后我运行sudo apt-get update命令并再次检查numpy版本,现在python控制台反映出我指的是较新版本的numpy( 1.11.3 )。

问题解决了。

(在成功解决此问题后,我在安装Tensorflow时又遇到了另一个问题。在这种情况下,我必须升级 python 六个 包)

现在Tensorflow在我的Ubuntu 14.10中运行良好:)

感谢您的关注:)

答案 1 :(得分:1)

您是否按照说明进行操作?

  

请退出tensorflow源代码树,然后重启你的python   从那里翻译。

答案 2 :(得分:0)

我在OS X上遇到了同样的问题(10.12)。和你一样,我陷入了一个循环,两个版本的python没有匹配,但重新安装并没有解决不匹配问题。最终,更彻底的删除和重新安装工作:

  1. 升级点数(sudo pip install --upgrade pip
  2. 删除〜/ tensorflow目录及其内容
  3. 重新安装virtualenv并按照说明激活它
  4. 创建virtualenv环境(virtualenv --system-site-packages ~/tensorflow
  5. 重新安装tensorflow,使用sudo处理权限问题 (sudo pip install --upgrade tensorflow