linux python 安装 nose lapack atlas numpy scipy

--http://lib.csdn.net/article/python/1262

作者:maple1149

The first step of machine larning .

环境配置:

OS:ubuntu 10.04

Python :Python 2.6.5

1.安装nose

这个安装还比较顺利,基本没报错。。。

下载nose: https://nose.readthedocs.org/en/latest/


  1. cd nose-1.3.4
  2. python setup.py install
  3. 检验安装成功:
  4. #python
  5. >>> import nose
  6. >>> nose
  7. <module 'nose' from '/usr/local/lib/python2.6/dist-packages/nose-1.3.4-py2.6.egg/nose/__init__.pyc'>
  8. >>> 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

2.安装 lapack

官方下载地址: http://www.netlib.org/lapack/

我下的是lapack-3.5.0.tgz。下好了,暂时放着,后面有用。。。

3.安装atlas

下载地址: http://sourceforge.net/projects/math-atlas/,下载最新版本:atlas3.10.2.tar.bz2 (下载日期:2014-10-26)

tar -jxvf atlas3.10.2.tar.bz2 
cd ATLAS
mkdir myobj64
cd myobj64

配置configure:

第一种配置方式(笔者使用第一种方式的,第二种没试过):
../configure -b 32 -Fa alg -fPIC -shared –prefix=/配置atlas的安装路径/ATLAS
-–with-netlib-lapack-tarfile=/lapack安装压缩文件存放的目录/lapack-3.5.0.tgz

-–with-netlib-lapack-tarfile 这个编译选项 前面是 ‘--’ 2个 横杆。网上很多都是一个的,一顿报错了。。看了里面的configure源文件才知道。。。

第二种配置方式:

sudo ../configure -b 64 -D c -DPentiumCPS=3901.000
-Fa alg -fPIC  –prefix=/opt/atlas3.10.2/
-–with-netlib-lapack-tarfile=/opt/lapack-3.5.0/lapack-3.5.0.tgz

其中的参数说明如下:
       -b 指定编译出库的类型(32位库还是64位库)根据自己的机器来设置
       -D c -DPentiumCPS 是指定你的CPU的时钟频率,可以通过 grep MHz /proc/cpuinfo 得到
numpy_scipy/ATLAS/my64Obj$ grep MHz /proc/cpuinfo
   cpu MHz        : 3901.000
   cpu MHz        : 3901.000
   cpu MHz        : 3901.000
   cpu MHz        : 3901.000
        -Fa alg -fPIC 得到与位置无关的代码,生成动态的共享库
       –prefix 为安装路径
       -–with-netlib-lapack 则是制定lapack库文件(此时lapack库文件还没有生成,先随便指定一个)

执行上述命令出错,提示
Unable to find usable compiler for F77; abortingMake sure compilers are
in your path, and specify good compilers to configure
(see INSTALL.txt or ‘configure –help’ for details)make[1]: ***
[atlas_run] Error 8
make[1]: Leaving directory
`/home/homer/Downloads/tool_server/python/numpy_scipy/ATLAS/my64Obj’
make: *** [IRun_comp] Error 2
ERROR 512 IN SYSCMND: ‘make IRun_comp args=”-v 0 -o atlconf.txt -O 1 -A
26 -Si nof77 0 -V 480  -Fa ic ‘-fPIC’ -Fa sm ‘-fPIC’ -Fa dm ‘-fPIC’ -Fa
sk ‘-fPIC’ -Fa dk ‘-fPIC’ -Fa xc ‘-fPIC’ -Fa gc ‘-fPIC’ -Fa if ‘-fPIC’
-b 64″‘
mkdir src bin tune interfaces
cd src ; mkdir testing auxil blas lapack pthreads threads
cd src/blas ; \
           mkdir f77reference reference gemv ger gemm kbmm \
                 level1 level2 level3 pklevel3

这是因为Ubuntu系统没有F77编译器,需要安装,安装命令如下:

sudo apt-get install fort77

  1.  
  • 1

ps:这个配置过程时间很长,我在虚拟机上跑了好几个小时。。。渣机器伤不起。。。最后还报了错,不过直接忽略了,最后全部装好,还是能用的。。

然后是:

make

make check

make time

make install

  • 1

4.安装 numpy

首先配置numpy目录下的site.cfg文件,指明atlas库的位置:

下载地址: https://pypi.python.org/pypi/numpy

下载最新版本: numpy-1.9.0.tar.gz

tar -zxvf numpy-1.9.0.tar.gz
cd numpy-1.9.0
接下来是配置 site.cfg文件。这是网上有些文章是这么介绍的,我也照做了,后来发现 不去配置也没关系。因此我建议先不去配置,直接安装:

python setup.py install

如果安装没有报错了。。那就不要配置site.cfg了

ps:配置site.cfg文件的方式可以看底下的参考文献。

5.安装scipy(大坑来了。。。)

下载地址: https://pypi.python.org/pypi/scipy,下载最新版本:scipy-0.14.0.tar.gz

tar -zxvf scipy-0.14.0.tar.gz

cd scipy-0.14.0

然后网上有些文章又说要配置site.cfg。可我在 解压出来的文件夹里更笨找不到这个site.cfg文件。所以直接跳过这一步了。

然后执行

python setup.py install

又是一顿报错。。。。

找到了 stackoverflow上同样的问题以及答案。

Python
scipy needs BLAS?

原来在 安装 scipy之前 还要安装 blas

随便找一个目录,下载blas

  1. wget http://www.netlib.org/blas/blas.tgz
  2. tar xzf blas.tgz
  3. cd BLAS
  4. ## NOTE: The selected fortran compiler must be consistent for BLAS, LAPACK, NumPy, and SciPy.
  5. ## For GNU compiler on 32-bit systems:
  6. #g77 -O2 -fno-second-underscore -c *.f # with g77
  7. #gfortran -O2 -std=legacy -fno-second-underscore -c *.f # with gfortran
  8. ## OR for GNU compiler on 64-bit systems:
  9. #g77 -O3 -m64 -fno-second-underscore -fPIC -c *.f # with g77
  10. gfortran -O3 -std=legacy -m64 -fno-second-underscore -fPIC -c *.f # with gfortran
  11. ## OR for Intel compiler:
  12. #ifort -FI -w90 -w95 -cm -O3 -unroll -c *.f
  13. # Continue below irrespective of compiler:
  14. ar r libfblas.a *.o
  15. ranlib libfblas.a
  16. rm -rf *.o
  17. export BLAS=~/自己的目录/BLAS/libfblas.a
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

这里有4种编译方式,分别是  32位和64机器的情况,以及 g77和gfortran编译器的情况。

笔者的机器是32位,g77和gfortran编译器都没装。刚开始打算安装g77,发现这个编译器几乎要淘汰了,安装包都找不到。

于是安装了gfortran

按照下述操作即可

sudo apt-get update

sudo apt-get install gfortran

然后选择上面的 编译指令

gfortran -O2 -std=legacy -fno-second-underscore -c *.f

ar r libfblas.a *.o ranlib libfblas.a rm -rf *.o

  • 1

查看下BLAS目录,确认生成了libfblas.a.

export BLAS=/自己的目录/BLAS/libfblas.a #这边很重要,不然后面安装scipy要报错的。。。

然后再把第2步下载的lapack-3.5.0.tgz 解压出来

  1. tar xzf lapack.tgz
  2. cd lapack-*/
  3. cp INSTALL/make.inc.gfortran make.inc # on Linux with lapack-3.2.1 or newer
  4. make lapacklib
  5. make clean
  6. export LAPACK=~/自己的目录/lapack-*/liblapack.a
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

按照上述操作即可

最后一步的 export 改成自己的目录。

最后,终于可以安装 scipy了

回到刚才的scipy目录

cd scipy-0.14.0

安装
python setup.py install

6.验证成功

打开 python,注意在打开python之前 不能在scipy这些目录下,否则 在 import scipy的时候会报错。

如下错误

root@ubuntu:~/machine_learning/scipy-0.14.0# python
Python 2.6.5 (r265:79063, Oct  1 2012, 22:07:21) 
[GCC 4.4.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import scipy
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "scipy/__init__.py", line 112, in <module>
    raise ImportError(msg)
ImportError: Error importing scipy: you cannot import scipy while
        being in scipy source directory; please exit the scipy source
        tree first, and relaunch your python intepreter.
>>>

  • 1

换个目录,再进入python就好了。

root@ubuntu:~/machine_learning# python
Python 2.6.5 (r265:79063, Oct  1 2012, 22:07:21) 
[GCC 4.4.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import nose
>>> nose
<module 'nose' from '/usr/local/lib/python2.6/dist-packages/nose-1.3.4-py2.6.egg/nose/__init__.pyc'>
>>> import numpy
>>> numpy
<module 'numpy' from '/usr/local/lib/python2.6/dist-packages/numpy/__init__.pyc'>
>>> import scipy
>>> scipy
<module 'scipy' from '/usr/local/lib/python2.6/dist-packages/scipy/__init__.pyc'>
>>>

这样子就表示安装都成功了。。。

参考资料:

Linux
安装numpy和scipy

Python
scipy needs BLAS?

python
: scipy install on ubuntu

菜鸟 ubuntu下安装scipy全过程
(主要是安装atlas)

-------------------------------------------------------------------------------------------------------------------------

red hat linux离线安装python机器学习包 这篇就够了!

http://blog.csdn.net/chengfulukou/article/details/53344522

2016-11-26 00:09 1038人阅读 评论(0) 收藏 举报
分类:
机器学习(6) python学习(2)
实际上 linux安装python机器学习包 只要 安装|Anaconda版本的python即可 速度快 而且包含了常用的机器学习包
Python下大多数工具包的安装都很简单,只需要执行 “python setup.py install”命令即可。然而,由于SciPy和numpy这两个科学计算包的依赖关系较多,安装过程较为复杂。网上教程较为混乱,而且照着做基本都不能用。在仔细研读各个包里的README和INSTALL之后,终于安装成功。现记录如下。
系统环境:
OS:RedHat5
Python版本:Python2.7.3
gcc版本:4.1.2
各个安装包版本:
scipy-0.11.0
numpy-1.6.2
nose-1.2.1
lapack-3.4.2
atlas-3.10.0
依赖关系:scipy的安装需要依赖于numpy、lapack、atlas(后两者都是线性代数工具包,不清楚的自行google之。。。),而numpy和sci的测试程序的运行又依赖于nose,因此,整个安装过程必须要按顺序执行的,否则是无法执行下去的。
安装步骤:
1、安装nose
这个安装比较简单,解压缩nose的安装文件,进入nose的目录,直接运行setup.py即可:
tar -zxvf nose-1.2.1.tar.gz
cd nose-1.2.1
python setup.py install
2、安装lapack
由于最新版本的ATLAS可以直接集成lapack的安装压缩文件进行编译,因此,如果仅在python下使用的话,可以不用安装lapack。只需要下载压缩文件:lapack-3.4.2.tgz 即可。
3、安装ATLAS
这个的安装主要是配置一些选项,包括配置成64位库文件、位置无关的以及共享的链接库。详细的配置说明在atlas安装包 doc/ 下的pdf文件中。可查阅。
下面是我的安装过程:
tar -jxvf atlas3.10.0.tar.bz2
cd ATLAS
mkdir obj64
../configure -b 64 -Fa alg -fPIC --shared --prefix=/配置atlas的安装路径/atlas --with-netlib-lapack-tarfile=/lapack安装压缩文件存放的目录/lapack-3.4.2.tgz(这里share前面是“--”网上很多都错了。。。)
(注:这个配置时间很长 一般虚拟机大概5小时)
make
(下面是一些检查过程,保证没有问题之后再进行安装)
make check
make time
make install
至此,atlas安装完成。不过我们要记录下编译过程中所用的fortran编译器类型,这个信息在下面安装numpy和scipy的时候要用。还是在目录 obj64/ 下,执行
fgrep 'F77 =' Make.inc
可以看到 F77 = gfortran
记下这个编译器类型 gfortran.
4、安装numpy
numpy和scipy的安装过程都要显式的指明所用fortran编译器的类型,而且要与前面编译atlas时一致(在本文中即:gfortran),这一点非常重要,否则很多功能都会出错。
首先配置numpy目录下的site.cfg文件,指明atlas库的位置:
tar -zxvf numpy-1.6.2.tar.gz
cd numpy-1.6.2
cp site.cfg.example site.cfg
vim site.cfg
配置成如下格式:
[DEFAULT]
library_dirs = /usr/local/lib:/atlas的安装目录/atlas/lib
include_dirs = /usr/local/include:/atlas的安装目录/include
[blas_opt]
libraries = f77blas, cblas, atlas
[lapack_opt]
libraries = lapack, f77blas, cblas, atlas
[amd]
amd_libs = amd
[umfpack]
umfpack_libs = umfpack
接下来配置安装numpy所需要的Fortran编译器类型:
如果前面得到的Fortran编译器是gfortran的话,执行:
pythonsetup.py build --fcompiler=gnu95
如果前面得到的Fortran编译器是g77的话,执行:
python setup.py build --fcompiler=gnu
然后执行
python setup.py install
安装完成
5、安装scipy
与安装numpy类似:
tar -zxvf scipy-0.11.0.tar.gz
cd scipy-0.11.0
vim site.cfg
配置成如下格式:
[DEFAULT]
library_dirs = /usr/local/lib:/atlas的安装目录/atlas/lib
include_dirs = /usr/local/include:/atlas的安装目录/include
[blas_opt]
libraries = f77blas, cblas, atlas
[lapack_opt]
libraries = lapack, f77blas, cblas, atlas
[amd]
amd_libs = amd
[umfpack]
umfpack_libs = umfpack
接下来配置安装numpy所需要的Fortran编译器类型:
如果前面得到的Fortran编译器是gfortran的话,执行:
python setup.py build --fcompiler=gnu95
如果前面得到的Fortran编译器是g77的话,执行:
python setup.py build --fcompiler=gnu
然后执行
python setup.py install
安装完成
然后可以在python下执行相应的测试程序:
python
>>> import nose
>>> import numpy
>>> import scipy
>>> numpy.test('full')
安装matplotlib
zlib(下载地址)
  1. libpng(下载地址)
  1. freetype(下载地址)
    1. matplotlib(下载地址)
      1. 例如出现“no local packages on working download links found for pyparsing” ,就下载此包安装即可

linux python 安装 nose lapack atlas numpy scipy的更多相关文章

  1. windows下安装python科学计算环境,numpy scipy scikit ,matplotlib等

    安装matplotlib: pip install matplotlib 背景: 目的:要用Python下的DBSCAN聚类算法. scikit-learn 是一个基于SciPy和Numpy的开源机器 ...

  2. linux python 安装到用户目录

    在公司服务器中,python可能存在多个版本,而且python中的包也有多个不同版本,由于不同猿的需求不同,经常会引起程序冲突,影响工作效率.因此,给大家分享一个在没有root权限时,将python安 ...

  3. Linux python安装

    Linux 安装 Python3.5   1. 准备 操作系统:Red Hat Enterprise Linux Server release 6.5 (Santiago) Python 安装包:Py ...

  4. linux python 安装 pymssql

    其实也不是很完整的. 我主要在dockers中的alpine linux 下进行开发. 这里主要说的就是如何在alpine下安装pymssql 多级依赖 pymssq 依赖 Cython , Cyth ...

  5. linux python 安装 pip出现 No module named 'setuptools'

    1.下载pip wget --no-check-certificate https://pypi.python.org/packages/source/p/pip/pip-8.0.2.tar.gz#m ...

  6. [python] 安装numpy+scipy+matlotlib+scikit-learn及问题解决

    这篇文章主要讲述Python如何安装Numpy.Scipy.Matlotlib.Scikit-learn等库的过程及遇到的问题解决方法.最近安装这个真是一把泪啊,各种不兼容问题和报错,希望文章对你有所 ...

  7. Linux入门(10)——Ubuntu16.04使用pip3和pip安装numpy,scipy,matplotlib等第三方库

    安装Python3第三方库numpy,scipy,matplotlib: sudo apt install python3-pip pip3 install numpy pip3 install sc ...

  8. matplotlib numpy scipy 的安装

    一:windows 端的安装 #cmd指令 python -m pip install --user numpy scipy matplotlib ipython jupyter pandas sym ...

  9. Windows python 安装 nNumpy、Scipy、matplotlib模块

    折腾了 很久,总结一些. 首先如果python 是64位,安装32位的numpy ,Scipy,或者matplotlib 模块. 会出现很多问题. 比如当你 在python 导入 Numpy 时,导入 ...

随机推荐

  1. 《大话设计模式》ruby版代码:外观模式

    需求: 股民买卖股票 初步代码: # -*- encoding: utf-8 -*- #股票1 class Stock1 def buy puts '股票1买入' end def sell puts ...

  2. VS2010/MFC编程入门之十(对话框:设置对话框控件的Tab顺序)

    前面几节鸡啄米为大家演示了加法计算器程序完整的编写过程,本节主要讲对话框上控件的Tab顺序如何调整. 上一讲为“计算”按钮添加了消息处理函数后,加法计算器已经能够进行浮点数的加法运算.但是还有个遗留的 ...

  3. 爬虫概要及web微信请求分析

    一.爬虫概要 1.网络爬虫是什么 百度百科:网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本.另外一些不常 ...

  4. 【开源】检查更新程序 CheckUpdate.Net 的实现

    访问最新源代码及更新历史:http://git.oschina.net/xcong/CheckUpdate.Net DownLoad 更新历史 version 1.2 [新增]添加UpdateFile ...

  5. P1314 聪明的质监员(前缀和+二分)

    P1314 聪明的质监员 显然可以二分参数W 统计Y用下前缀和即可. #include<iostream> #include<cstdio> #include<cstri ...

  6. Java集合转有类型的数组之toArray(T[] a)

    在java变成中慎用强制类型转换,尽量使用类自带的转换函数或泛型.先看一行代码 错误方法: String[] array= (String[]) list.toArray(); 如果list中存放的是 ...

  7. sqlite的缺点和限制

    随着查询变大变复杂,查询时间使得网络调用或者事务处理开销相形见绌, 这时一些大型的设计复杂的数据库开始发挥作用了. 虽然SQLite也能处理复杂的查询,但是它没有精密的优化器或者查询计划器. SQLi ...

  8. #/bin/sh参数-e的含义

    注:本博客欢迎转载和引用,但请保留原作者信息! 一.背景 今天遇到一个诡异的问题,一旦脚本中判断$?为非零,那么脚本就会自动退出的情况,仔细调试脚本的逻辑,并没有发现错误,因此作此文 二.解决 既然要 ...

  9. Using SQLXML Bulk Load in the .NET Environment

    http://msdn.microsoft.com/en-us/library/ms171878.aspx 1.首先创建一张表 CREATE TABLE Ord ( OrderID ,) PRIMAR ...

  10. SDN前瞻 该来的来了!SDN 软件定义网络

    SDDC:Software Defined Data Center 软件定义数据中心,全数据中心软件化. 在我们接触SDN概念之前,服务器虚拟化,软件虚拟化技术已经是非常成熟了.如果网络能够被虚拟化, ...