安装scikit learn时与cblas发生链接错误



在我的RHEL7上,我试图安装py-eearth,但得到了以下链接错误:

/usr/bin/ld: cannot find -lcblas

我安装了blas、blas-devel、atlas和atlas-devel软件包。

此错误后打印的编译命令指定

-L/usr/lib64/atlas -lcblas -lm ....

为了完整起见,目录/usr/lib64/atlas包含以下文件和符号链接

libsatlas.so -> libsatlas.so.3.10
libsatlas.so.3 -> libsatlas.so.3.10
libsatlas.so.3.10
libtatlas.so -> libtatlas.so.3.10
libtatlas.so.3 -> libtatlas.so.3.10
libtatlas.so.3.10

有什么帮助吗?

这似乎是sklearn的一个问题,因为它不理解atlas包现在是一个共享的.so文件,而不是多个文件。您可以在这个github问题中看到问题。

我的解决方案是最后一个:只需创建一个链接:

ln -s /usr/lib64/atlas/libsatlas.so /usr/lib64/atlas/libcblas.so

然后再试一次。

Ian Roddis指出,这是scikit学习中的一个错误。

Linux上的另一个解决方案是将pip升级到>=8.1版本。然后pip可以安装"many-Linux"二进制轮子,而不是从源代码中编译scikit-learn。(二进制轮子没有这个问题)

相关内容

  • 没有找到相关文章

最新更新