1

我曾以为我使用的是最新版本的 numpy (1.10) 至少,当我运行时,pip list我看到numpy (1.10.4). 但是,当我进入 python 解释器并输入

import numpy
numpy.__version__

我懂了

'1.8.2'

我希望在 1.10 版本之后的某个时间安装 1.8.2,因为我最近安装了一些新包,现在当我运行一些以前可以工作的代码时,我收到了这个错误:

RuntimeError: module compiled against API version a but this version of numpy is 9

OpenCV 2.4.8:针对 API 版本 9 编译的模块中,接受的答案提到 numpy 团队将版本 1.8 称为 numpy 版本 9。所以,我认为我最初使用的是 numpy_1.10,并以某种方式安装了 numpy_1.8。

我的第一个问题是这是如何发生的,我该如何防范?

我还想知道如何阻止 numpy_1.8 阻止 1.10。我最初的想法是使用 apt-get 删除 numpy_1.8,但这会删除许多其他依赖于 1.8 的软件包。

我很想只使用 rm 来摆脱 1.8 版本,但我担心那些其他软件包会受到影响。

我的第二个想法是更改 sys.path 以确保在 1.8 版本之前看到 1.10 版本。到目前为止,我没有使用 PYTHONPATH。有没有办法在不使用 PYTHONPATH 的情况下更改 sys.path?这是一个合理的方法吗?

4

1 回答 1

0

最简单的做法是删除 NumPy 1.8 安装。查看numpy.__file__找到你的 1.8 安装在哪里,然后删除该目录。

或者,正如您所提到的,如果您不想删除 1.8,您也可以更改路径。这样的事情应该这样做:

import sys
sys.path.insert(3, '<path_to_your_NumPy_1.10_install>')

我已在位置 3 插入,以便您保留''顶部的内容,但您可以根据需要进行修改。

于 2016-03-22T01:40:22.300 回答