我正在尝试安装scipy,并遇到问题。比较我的 结果到FAQ页面,看起来我的ATLAS不完整。这页纸 表示:
ATLAS提供的LAPACK库不完整 在收到导入错误时会注意到它 ImportError:... / flapack.so:未定义的符号: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构建。
我缺少的实际对象是“sgges_”。我尝试了两种解决方案。
1)我已遵循ATLAS指令进行完整构建 LAPACK,rev。 3.4.2。 (顺便说一句,产生的LAPACK约为10MB,大于 FAQ中的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编译器。
感谢。
答案 0 :(得分:1)
我必须在slackware 13 linux发行版中从头开始编译scipy,这是一个非常基本的linux系统;我在这里列出了所有步骤和结果:
SCIPY install from source code on slackware 13
在我的安装中,我试图让动态库安装在本地目录/home/andrew3/.local/lib中,因为它不是系统安装。您遇到的类似错误是由链接器ldd无法找到库引起的。
您可以通过复制我的步骤来隔离您的问题,并在任何地方查看它失败的位置。