2017-01-01 72 views
2

我在我的Ubuntu 14.10安装Tensorflow的过程。我以前安装numpy的SciPy的sklearnIPython的笔记本。我跟着在Tensorflow.org官方文档(pip installation)我tensorflow安装目录的.The位置/usr/local/lib/python2.7/dist-packages。我在我的Ubuntu终端中执行import tensorflow as ts时出现以下错误。Tensorflow(仅限CPU)安装错误| Ubuntu 14.10 | numpy的1.8.2

>>> 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。我试图升级numpy的使用命令sudo pip install --upgrade numpy但是这似乎并没有升级我现有的numpy的版本和问题仍然存在。

解决这个问题有什么建议?

回答

5

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

当我输入

>> import numpy 
>> print numpy.__version__ 

我得到1.8.something作为我numpy的版本。根据我读的线程,这个有点旧,不符合Tensorflow,所以我试图通过

pip install numpy --upgrade 

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

numpy.__path__ #to locate numpy location/path 

然后我从蟒控制台出口和在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。在这种情况下,我不得不升级蟒蛇包)

现在Tensorflow效果很好我的Ubuntu 14。10 :)

感谢您的关注:)

1

你按照说明进行操作?

请退出tensorflow源代码树,然后从那里重新启动您的python 解释器。

+0

这是堆栈溢出中类似类型的问题的答案,我通过其他方法解决了这个问题。 – CoolCK

0

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

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