我的代码在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
这是我对发生的事情的猜测:
-
在运行Ubuntu 12.04时,您安装了
scikit-learn
的版本,该版本是针对较旧版本的Lapack构建的,由liblapack.so.3gf
提供。 -
当您(大概)将Ubuntu从12.04升级到您现在使用的任何版本时,Lapack也被升级为较新的版本。在Ubuntu> = 13.04的版本中,
python-numpy
软件包的Lapack依赖性由liblapack3
,liblapack.so.3
或libatlas3-base
提供,而不是liblapack.so.3gf
。 -
现在
scikit-learn
试图在运行时链接到较新版本,但由于Lapack的旧版本和较新版本之间的不兼容而失败。
我建议您首先尝试使用PIP卸载和重新安装scikit-learn
。希望scikit-learn
然后将重建与新的Lapack库进行重建,从那时起,一切都应该正常。
如果那不起作用,我将尝试卸载任何当前安装的Lapack库。这可能会迫使您卸载numpy
和scipy
。然后,我将安装liblapack3
,以及libopenblas-base
和libopenblas-dev
(为标准BLAS库提供更快的替代方案),然后重新安装numpy
,scipy
和scikit-learn
。
简单地安装liblapack3
为我解决了问题:
apt-get install liblapack3