3

我正在尝试安装 scipy,但遇到了问题。将我的结果与常见问题页面进行比较,看起来我的 ATLAS 不完整。该页面说:

ATLAS 提供的 LAPACK 库不完整 当您遇到 ImportError: .../flapack.so : undefined symbol: sgesdd_ 等导入错误时,您会注意到它为确保 NumPy/SciPy 是针对完整的 LAPACK 构建的,请检查文件的大小liblapack.a - 它应该是大约 6MB。liblapack.a 的位置通过执行 python numpy/distutils/system_info.py lapack 来显示 修复:按照 http://math-atlas.sourceforge.net/errata.html#completelp中的说明构建完整的LAPACK库来创建一个完整的 liblapack.a。然后将 liblapack.a 复制到安装 libatlas.a 的相同位置并使用 scipy build 重试。

我缺少的实际对象是“sgges_”。我尝试了两种解决方案。

1) 我已按照 ATLAS 说明制作了 LAPACK 的完整版本,rev。3.4.2. (顺便说一句,生成的 LAPACK 大约为 10MB,比常见问题解答中的 6MB 大。)

2) 我找到了 LAPACK 的预编译二进制文件 - rev。不清楚 - 只是下载它并将其放置在适当的位置。(它的大小接近 6MB。)

无论如何,我都会遇到同样的问题。

"nm" 将 liblapack.a 中定义的 sgges_ 显示为 day。System_info.py 在 /usr/local/lib 中找到了我的 lapack。

这是一个严重的失败吗?还有什么可做的吗?

顺便说一句,我在 64 位 CentOs 5.x 机器上运行 python 2.7,而 gfortran 是我的 FORTRAN 编译器。

谢谢。

4

1 回答 1

1

我不得不在 slackware 13 linux 发行版上从头开始编译 scipy,这是一个非常基本的 linux 系统;我在这里列出了所有步骤和结果:

从 slackware 13 上的源代码安装 SCIPY

在我的安装中,我试图让动态库安装在本地目录 /home/andrew3/.local/lib 中,因为它不是系统安装。与您遇到的类似错误是由链接器 ldd 无法找到库引起的。

您可以通过复制我的步骤来隔离您的问题,并查看它在哪里失败(如果有的话)。

于 2013-03-05T03:08:05.780 回答