ImportError with scipy/sklearn: `/usr/lib/liblapack.so.3gf:



我的代码在ubuntu 12.04中正常工作,但是现在我有错误:

 来自sklearn.metrics导入精确_score文件"/usr/local/lib/python2.7/dist-packages/sklearn/metrics/metrics/__init__.py",第6行,在第6行    来自.metrics Import(efceracy_score,file"/usr/local/lib/python2.7/dist-packages/sklearn/metrics/metrics/metrics.py",第25行,in    从scipy.spatial.distance导入hamming作为sp_hamming文件"/usr/local/lib/lib/python2.7/dist-packages/scipy/spatial/spatial/spatial/spatial/__init__.py",第91行,in    来自.qhull import * ImporterRor:/usr/lib/liblapack.so.so.3gf:不确定的符号:atl_chemv

我不明白这个错误是什么意思,我该怎么办。

可以尝试此

sudo update-alternatives --set liblapack.so.3gf /usr/lib/lapack/liblapack.so.3gf

这是我对发生的事情的猜测:

  1. 在运行Ubuntu 12.04时,您安装了scikit-learn的版本,该版本是针对较旧版本的Lapack构建的,由liblapack.so.3gf提供。

  2. 当您(大概)将Ubuntu从12.04升级到您现在使用的任何版本时,Lapack也被升级为较新的版本。在Ubuntu> = 13.04的版本中,python-numpy软件包的Lapack依赖性由liblapack3liblapack.so.3libatlas3-base提供,而不是liblapack.so.3gf

  3. 现在scikit-learn试图在运行时链接到较新版本,但由于Lapack的旧版本和较新版本之间的不兼容而失败。

我建议您首先尝试使用PIP卸载和重新安装scikit-learn。希望scikit-learn然后将重建与新的Lapack库进行重建,从那时起,一切都应该正常。

如果那不起作用,我将尝试卸载任何当前安装的Lapack库。这可能会迫使您卸载numpyscipy。然后,我将安装liblapack3,以及libopenblas-baselibopenblas-dev(为标准BLAS库提供更快的替代方案),然后重新安装numpyscipyscikit-learn

简单地安装liblapack3为我解决了问题:

apt-get install liblapack3

相关内容

  • 没有找到相关文章

最新更新