【Python笔记】如何源码编译依赖LAPACK和ATLAS库的NumPy包

这篇笔记详细介绍了如何在Python环境中,源码编译安装依赖于LAPACK和ATLAS库的NumPy包。编译过程需要注意GCC版本至少为4.7并包含gfortran,以避免编译错误。同时,由于ATLAS编译参数与机器配置相关,直接移植编译好的包到其他机器可能导致core dump错误,解决办法是在目标机器上重新编译。步骤包括更新GCC环境,配置site.cfg文件指定atlas库路径,然后编译NumPy源码。
摘要由CSDN通过智能技术生成

上篇笔记介绍了不依赖lapack和atlas库的NumPy包源码编译/安装方法,但“纯净版”的NumPy会损失性能,故本篇笔记说明如何源码编译安装依赖lapack和atlas库的NumPy包。

特别提醒:由于atlas编译时会根据当前机器配置生成编译参数,所以如果想把在一台机器上编译好的NumPy包打包拷贝到另一台配置不同的机器上,可能会在使用时(例如调用numpy.dot()计算两个向量的点积)出现导致Python解释器崩溃的core dump,出错提示类似于“Illegal instruction (core dumped)”。这意味着两台机器的CPU指令集存在不兼容。解决此类core dump的根本方法是在新机器上按照本文的步骤重新编译atlas库和NumPy包。

1. GCC版本要求 
使用较新版本的GCC工具集(尽量不低于v4.7)且集成有gfortran编译器。
备注1:这里大写的"GCC"是指GNU Compiler Collection,它除包含C语言编译器gcc外,还包含很多其它语言的编译器(如g++/gfortran等)
备注2:3.x版的的C语言编译器gcc会由于某些头文件缺失导致编译atlas库报错
备注3:若GCC工具集中没有gfortran编译器,则编译lapack库时会遇到一些莫名其妙的错误(因为lapack是用fortran编写的),好在GCC4.7及以上版本中已经集成了gfortran编译器
在GCC版本符合要求的前提下,临时将其加入环境变量PATH并设置动态库查找路径:

$ export PATH=/home/slvher/tools/gcc48/bin/:$PATH
$ export LD_LIBRARY_PATH=/home/slvher/tools/gcc48/lib64:/home/slvher/tools/gcc48/lib
备注4:在当前shell会话中临时设置LD_LIBRARY_PATH可以保证编译过程中正确搜索到GCC库,但最好不要设置到.bash_p
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值