我以为我使用的是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?这是一种合理的方法吗?
答案 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,以便将''
之类的内容保留在顶部,但您可以根据需要对其进行修改。