如何阻止numpy_1.8屏蔽numpy_1.10?

时间:2016-03-22 00:41:22

标签: python numpy pythonpath sys.path

我以为我使用的是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: module compiled against API version 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?这是一种合理的方法吗?

1 个答案:

答案 0 :(得分:0)

最简单的方法是删除NumPy 1.8安装。查看numpy.__file__以查找1.8安装位置,然后删除目录。

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

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

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