无法导入numpy:错误:/usr/lib/liblapack.so.3:未定义的符号:gotoblas

10

当我尝试导入numpy时,出现以下错误:

/usr/local/lib/python2.7/dist-packages/numpy/linalg/__init__.py in <module>()
     49 from .info import __doc__
     50 
---> 51 from .linalg import *
     52 
     53 from numpy.testing import Tester

/usr/local/lib/python2.7/dist-packages/numpy/linalg/linalg.py in <module>()
     27     )
     28 from numpy.lib import triu, asfarray
---> 29 from numpy.linalg import lapack_lite, _umath_linalg
     30 from numpy.matrixlib.defmatrix import matrix_power
     31 from numpy.compat import asbytes

ImportError: /usr/lib/liblapack.so.3: undefined symbol: gotoblas

我已经尝试过发布在Error by import numpy: lapack_lite.so: undefined symbolGotoBLAS error when installing matplotlib with pip in a virtualenv on debian wheezy 的解决方案。

我已经尝试了所有的选项:

vvkulkarni@galileo:~$ sudo update-alternatives --config liblapack.so.3
There are 3 choices for the alternative liblapack.so.3 (providing /usr/lib/liblapack.so.3).

  Selection    Path                                      Priority   Status
------------------------------------------------------------
* 0            /usr/lib/openblas-base/liblapack.so.3      40        auto mode
  1            /usr/lib/atlas-base/atlas/liblapack.so.3   35        manual mode
  2            /usr/lib/lapack/liblapack.so.3             10        manual mode
  3            /usr/lib/openblas-base/liblapack.so.3      40        manual mode

我正在使用Ubuntu 14.1和Python 2.7


1
你是怎么安装numpy的?你的问题很可能是由于冲突的liblapack.so.3引起的。我在Ubuntu 14.04上只有/usr/lib/lapack/liblapack.so.3。你能否移除libopenblas-base - Padraic Cunningham
升级之前NumPy是正常工作的吗? - Padraic Cunningham
是的,在升级之前它是可以工作的。 - vkmv
是的,我确实尝试重新安装了。 - vkmv
这很令人惊讶。我删除了libopenblas-base,重新安装了libatlas3-dev,现在错误消失了。但是现在我的numpy速度变慢了:(。我相信OpenBLAS要快得多。 - vkmv
显示剩余9条评论
2个回答

5
为了解决这些问题,我按照这里的安装bash脚本进行操作:https://gist.github.com/amirsani/d2aa0763cc138902bf73 在所有安装结束后,我仍然遇到了相同的错误,在测试期间,所以我进行了以下操作。
sudo apt-get remove libopenblas-base

我从这里获得了以下信息:安装numpy的lapack

这似乎解决了我的原始问题(与您的类似但不完全相同),我当时试图从ipython运行以下内容。

from ortools.linear_solver import pywraplp

产生了与您遇到的相同错误。


1
错误信息显示您的 numpy 安装在 '/usr/local/lib',但是 apt-get 会将 numpy 安装在 '/usr/lib'。这表明您有另一个通过其他方法安装的 numpy 副本(例如 pip install)。请检查是否有名为 /usr/lib/python2.7/dist-packages/numpy/ 的目录。如果有,请确保 Python 从此处导入 numpy 而不是从 '/usr/local/lib' 导入。

尝试删除、重命名或移动目录 /usr/local/lib/python2.7/dist-packages/numpy/,或者您可以在 Python 中更改 sys.path


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接