numpy.distutils.system_info.BlasNotFoundError:
Blas (http://www.netlib.org/blas/) libraries not found.
Directories to search for the libraries can be specified in the
numpy/distutils/site.cfg file (section [blas]) or by setting
the BLAS environment variable.
我需要从这个网站下载哪个tar?
我已经尝试过fortrans,但是我一直得到这个错误(显然是在设置了环境变量之后)。
如果您需要使用最新版本的SciPy而不是打包版本,而不必经历构建BLAS和LAPACK的麻烦,您可以遵循以下过程。
从存储库安装线性代数库(对于Ubuntu)
然后安装SciPy(在下载SciPy源代码之后):
python setup.py install
或视情况而定。
在Fedora上,这个有效:
请记住,除了“blas”和“lapack”之外,还要安装“lapack-devel”和“blas-devel”,否则会出现您提到的错误或“numpy.distutils.system_info.LapackNotFoundError”错误。
用来提供构建和安装指令的SciPy webpage,但是那里的指令现在依赖于OS二进制发行版。要在没有所需库的预编译包的操作系统上生成SciPy(和NumPy),必须生成并静态链接到Fortran库BLAS和LAPACK:
只执行五个g77/gfortran/ifort命令中的一个。我已经把所有的都注释掉了,但是我用的是格弗特兰。后续的LAPACK安装需要一个Fortran 90编译器,由于两个安装都应该使用同一个Fortran编译器,因此g77不应该用于BLAS。
接下来,你需要安装LAPACK的东西。SciPy网页的说明也帮助了我,但我不得不修改它们以适应我的环境:
2015年9月3日更新: 今天验证了一些评论(感谢所有人):在运行
make lapacklib
之前,编辑make.inc
文件并将-fPIC
选项添加到OPTS
和NOOPT
设置中。如果您使用的是64位体系结构,或者希望编译为64位体系结构,也可以添加-m64
。在编译BLAS和LAPACK时,必须将这些选项设置为相同的值。如果您忘记了-fPIC
,SciPy实际上会给您一个关于缺少符号的错误,并建议使用此开关。make.inc
的特定部分在我的设置中如下所示:在旧计算机(如Redhat5)上,gfortran可能安装在旧版本(如4.1.2)中,并且不理解选项
-frecursive
。在这种情况下,只需从make.inc
文件中删除它。Makefile的lapack测试目标在我的设置中失败,因为它找不到blas库。如果彻底,可以将blas库临时移动到指定位置以测试lapack。我是个懒惰的人,所以我相信开发人员会让它工作,并且只在SciPy中进行验证。
相关问题 更多 >
编程相关推荐