首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为numpy安装lapack

为numpy安装lapack
EN

Stack Overflow用户
提问于 2012-01-19 05:50:16
回答 4查看 28.5K关注 0票数 30

从源代码运行Ubuntu11.10+ python2.7...built numpy并安装它,但是当我去安装它时,我得到

代码语言:javascript
复制
ImportError: /usr/lib/liblapack.so.3gf: undefined symbol: ATL_chemv

当它尝试从numpy.linalg导入lapack_lite时。我试着从头开始重建lapack,但它似乎只是

代码语言:javascript
复制
/usr/local/lib/libblas.a
/usr/local/lib/liblapack.a
/usr/local/lib/libtmglib.a

和.so文件。.so.3gf从何而来,我如何修复它?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-03-15 10:11:11

我也遇到了同样的问题,删除了libopenblas-base包就解决了这个问题:

代码语言:javascript
复制
sudo apt-get remove libopenblas-base

正如其他人所解释的,有几个包提供了liblapack.so.3gf的不兼容版本。

票数 61
EN

Stack Overflow用户

发布于 2012-01-20 23:12:10

根据我在周围看到的一些bugreport,您可能安装了多个BLAS/ ATLAS /LAPACK提供商,比如ATLAS和OpenBLAS/GotoBLAS,它们彼此冲突。看看这个:

代码语言:javascript
复制
$ ls -l /etc/alternatives/*.so.3gf

并检查它们是否都对应于相同的包(例如,它们都指向/usr/lib/atlas-base/)

票数 9
EN

Stack Overflow用户

发布于 2016-01-23 05:49:24

如果您安装了libopenblas-baselibatlas3-base,但没有安装liblapack3,则会出现此问题。此软件包组合将安装冲突版本的libblas.so (来自OpenBLAS)和liblapack.so (来自ATLAS)。

解决方案1(我最喜欢的):如果你还安装了liblapack3,你可以在你的机器上同时保留OpenBLAS和ATLAS。

代码语言:javascript
复制
sudo apt-get install liblapack3

解决方案2:卸载ATLAS (这实际上会自动为您安装liblapack3,因为有一些deb包的恶作剧)

代码语言:javascript
复制
sudo apt-get uninstall libatlas3-base

解决方案3:卸载OpenBLAS

代码语言:javascript
复制
sudo apt-get uninstall libopenblas-base

错误的配置

代码语言:javascript
复制
$ 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

解决方案1

代码语言:javascript
复制
$ 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'

解决方案2

代码语言:javascript
复制
$ 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'

解决方案3

代码语言:javascript
复制
$ 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'
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8917977

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档