Numpy API版本不匹配

jdb*_*ody 4 numpy gentoo bazel tensorflow

我正在尝试在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
Run Code Online (Sandbox Code Playgroud)

当我尝试导入tensorflow时,我得到:

>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
Run Code Online (Sandbox Code Playgroud)

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

问题是如何解决?我对这个过程有很多陌生的知识,因此,如果有以下任何建议,我将不胜感激:

  1. 告诉tensorflow构建使用系统范围的numpy。Tensorflow在构建过程中使用bazel
  2. 找出所需的numpy张量流版本,并将我的系统numpy更改为该版本。
  3. 还有别的吗?我无法在系统级上对pip进行太多操作,因为pip和Gentoo并不相处。我尝试通过Anaconda安装,但随后tensorflow看不到我的GPU。我认为用pip在virtualenv中安装(以前可以正常工作)不起作用,因为我已经安装了cuda 9.1。也许我应该降级到9.0 ???

任何帮助表示赞赏!

jdb*_*ody 5

在SO上发贴后,我总是想出第二个人做某事!我安装到virtualenv中,并pip3 install --upgrade numpy在virtualenv中进行了安装。一切似乎都很好...