ImportError–usr-lib-liblapack.so.3- undefined symbol- ATL_chemv 解决方法

ImportError–usr-lib-liblapack.so.3- undefined symbol- ATL_chemv

# This issue arises when you have libopenblas-base and libatlas3-base installed, but don't haveliblapack3 installed. This combination of packages installs conflicting versions of libblas.so (from OpenBLAS) and liblapack.so (from ATLAS).

# Solution 1 (my favorite): You can keep both OpenBLAS and ATLAS on your machine if you also install liblapack3.
$ sudo apt-get install liblapack3

# Solution 2: Uninstall ATLAS (this will actually install liblapack3 for you automatically because of some deb package shenanigans)
$ sudo apt-get uninstall libatlas3-base

# Solution 3: Uninstall OpenBLAS
$ sudo apt-get uninstall libopenblas-base
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
# Bad configuration
$ dpkg -l | grep 'openblas\|atlas\|lapack'
ii  libatlas3-base                                        3.10.1-4                                            amd64        Automatically Tuned Linear Algebra Software, generic shared
ii  libopenblas-base                                      0.2.8-6ubuntu1                                      amd64        Optimized BLAS (linear algebra) library based on GotoBLAS2
$ update-alternatives --get-selections | grep 'blas\|lapack'
libblas.so.3                   auto     /usr/lib/openblas-base/libblas.so.3
liblapack.so.3                 auto     /usr/lib/atlas-base/atlas/liblapack.so.3
$ python -c 'import numpy'
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/usr/lib/python2.7/dist-packages/numpy/__init__.py", line 153, in <module>
    from . import add_newdocs
  File "/usr/lib/python2.7/dist-packages/numpy/add_newdocs.py", line 13, in <module>
    from numpy.lib import add_newdoc
  File "/usr/lib/python2.7/dist-packages/numpy/lib/__init__.py", line 18, in <module>
    from .polynomial import *
  File "/usr/lib/python2.7/dist-packages/numpy/lib/polynomial.py", line 19, in <module>
    from numpy.linalg import eigvals, lstsq, inv
  File "/usr/lib/python2.7/dist-packages/numpy/linalg/__init__.py", line 50, in <module>
    from .linalg import *
  File "/usr/lib/python2.7/dist-packages/numpy/linalg/linalg.py", line 29, in <module>
    from numpy.linalg import lapack_lite, _umath_linalg
ImportError: /usr/lib/liblapack.so.3: undefined symbol: ATL_chemv

# Solution 1
$ dpkg -l | grep 'openblas\|atlas\|lapack'
ii  libatlas3-base                                        3.10.1-4                                            amd64        Automatically Tuned Linear Algebra Software, generic shared
ii  liblapack3                                            3.5.0-2ubuntu1                                      amd64        Library of linear algebra routines 3 - shared version
ii  libopenblas-base                                      0.2.8-6ubuntu1                                      amd64        Optimized BLAS (linear algebra) library based on GotoBLAS2
$ update-alternatives --get-selections | grep 'blas\|lapack'
libblas.so.3                   auto     /usr/lib/openblas-base/libblas.so.3
liblapack.so.3                 auto     /usr/lib/lapack/liblapack.so.3
$ python -c 'import numpy'

# Solution 2
$ dpkg -l | grep 'openblas\|atlas\|lapack'
ii  liblapack3                                            3.5.0-2ubuntu1                                      amd64        Library of linear algebra routines 3 - shared version
ii  libopenblas-base                                      0.2.8-6ubuntu1                                      amd64        Optimized BLAS (linear algebra) library based on GotoBLAS2
$ update-alternatives --get-selections | grep 'blas\|lapack'
libblas.so.3                   auto     /usr/lib/openblas-base/libblas.so.3
liblapack.so.3                 auto     /usr/lib/lapack/liblapack.so.3
$ python -c 'import numpy'

# Solution 3
$ dpkg -l | grep 'openblas\|atlas\|lapack'
ii  libatlas3-base                                        3.10.1-4                                            amd64        Automatically Tuned Linear Algebra Software, generic shared
$ update-alternatives --get-selections | grep 'blas\|lapack'
libblas.so.3                   auto     /usr/lib/atlas-base/atlas/libblas.so.3
liblapack.so.3                 auto     /usr/lib/atlas-base/atlas/liblapack.so.3
$ python -c 'import numpy'
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值