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
ii libatlas3-base 3.10 .1 -4 amd64 Automatically Tuned Linear Algebra Software, generic shared
ii libopenblas-base 0.2 .8 -6 ubuntu1 amd64 Optimized BLAS (linear algebra) library based on GotoBLAS2
$ update-alternatives --get -selections | grep
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
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
ii libatlas3-base 3.10 .1 -4 amd64 Automatically Tuned Linear Algebra Software, generic shared
ii liblapack3 3.5 .0 -2 ubuntu1 amd64 Library of linear algebra routines 3 - shared version
ii libopenblas-base 0.2 .8 -6 ubuntu1 amd64 Optimized BLAS (linear algebra) library based on GotoBLAS2
$ update-alternatives --get -selections | grep
libblas.so.3 auto /usr/lib /openblas-base/libblas.so.3
liblapack.so.3 auto /usr/lib /lapack/liblapack.so.3
$ python -c
# Solution 2
$ dpkg -l | grep
ii liblapack3 3.5 .0 -2 ubuntu1 amd64 Library of linear algebra routines 3 - shared version
ii libopenblas-base 0.2 .8 -6 ubuntu1 amd64 Optimized BLAS (linear algebra) library based on GotoBLAS2
$ update-alternatives --get -selections | grep
libblas.so.3 auto /usr/lib /openblas-base/libblas.so.3
liblapack.so.3 auto /usr/lib /lapack/liblapack.so.3
$ python -c
# Solution 3
$ dpkg -l | grep
ii libatlas3-base 3.10 .1 -4 amd64 Automatically Tuned Linear Algebra Software, generic shared
$ update-alternatives --get -selections | grep
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