Numpy API版本不匹配

时间:2018-03-06 22:13:06

标签: numpy tensorflow bazel gentoo

我正在尝试在Gentoo系统上从源代码安装tensorflow(我想我需要这样做才能让它使用CUDA 9.1)。

我可以构建tensorflow,然后以用户身份安装:

pip3 install --no-cache-dir --user /tmp/tensorflow_pkg/tensorflow-1.6.0rc1-cp35-cp35m-linux_x86_64.whl

当我尝试导入张量流时,我得到:

>RuntimeError                         Traceback (most recent call last)
>RuntimeError: module compiled against API version 0xc but this version of numpy is 0xb
>
>ImportError                           Traceback (most recent call last)
>ImportError: numpy.core.multiarray failed to import
>
>ImportError                         Traceback (most recent call last)
>ImportError: numpy.core.umath failed to import
>
>ImportError                        Traceback (most recent call last)
>ImportError: numpy.core.umath failed to import

所以我的猜测是,tensorflow是针对不同版本的numpy构建的,而不是我的系统默认值(1.13.3)。

问题是如何解决它?关于这个过程有很多我不熟悉的事情,所以如果有任何指示,我将不胜感激:

  1. 告诉tensorflow构建使用系统范围的numpy。 Tensorflow使用bazel进行构建过程
  2. 找出numpy tensorflow想要的版本,并将我的系统numpy改为。
  3. 别的什么?我不能在系统级别上做点什么,因为pip和Gentoo不相处。我尝试通过Anaconda安装,但然后tensorflow无法看到我的gpus。使用pip(过去工作)在virtualenv中安装不起作用,我想因为我已经安装了cuda 9.1。也许我应该降级到9.0 ???
  4. 任何帮助表示赞赏!

1 个答案:

答案 0 :(得分:5)

有人在发布SO之后总是弄清楚如何做第二件事!我安装了virtualenv并在virtualenv中做了pip3 install --upgrade numpy。一切似乎都很好......