环境:RHEL6.5 离线安装
说明:在安装dlib时依赖的基础 环境较多,先升级gcc,以适应c++ 11的使用;需要用到cmake编译工具,boost这个c++库,BLAS。python升级到2.7以上版本。
############################################################################
一,本地yum源搭建
1)挂载系统镜像文件 :
  • mkdir /media/cdrom  #新建镜像文件挂载目录
  • cd   #进入系统镜像文件存放目录
  • ls  #列出目录文件,可以看到刚刚上传的系统镜像文件
  1. mount -t iso9660 -o loop /usr/local/src/rhel-server-7.0-x86_64-dvd.iso  /media/cdrom #挂载系统镜像
  2. cd  /media/cdrom  #进入挂载目录,使用ls命令可以看到已经有文件存在了

备注:umount  /media/cdrom  #卸载系统镜像

2)设置开机自动挂载系统镜像文件

  1. vi /etc/fstab   #添加以下代码。实现开机自动挂载
  2. /usr/local/src/rhel-server-7.0-x86_64-dvd.iso  /media/cdrom   iso9660    defaults,ro,loop  0 0
  3. :wq! #保存退出

3)配置本地yum源

cd /etc/yum.repos.d/ #进入yum配置目录
touch rhel-media.repo #建立yum配置文件
vi rhel-media.repo #编辑配置文件,添加以下内容
[rhel-media]
name=Red Hat Enterprise Linux 7.0 #自定义名称
baseurl=file:///media/cdrom #本地光盘挂载路径
enabled=1 #启用yum源,0为不启用,1为启用
gpgcheck=1 #检查GPG-KEY,0为不检查,1为检查
gpgkey=file:///media/cdrom/RPM-GPG-KEY-redhat-release #GPG-KEY路径

4)使用yum命令自动安装软件

1,yum clean all   #清除yum缓存

yum makecache  #缓存本地yum源中的软件包信息

2,yum update

3,yum install httpd   #安装apache

安装部分依赖:

sudo yum install -y gcc-c++ gcc                           
sudo yum install -y yum install gcc-gfortran

sudo yum install boost                                                
sudo yum install boost-devel

sudo  yum install libX11-devel

sudo yum install openssl-devel

######################################################################

二,升级gcc 4.9.3  参考: http://blog.csdn.net/xiexievv/article/details/50620170

1,下载 http://ftp.tsukuba.wide.ad.jp/software/gcc/releases/gcc-4.9.3/gcc-4.9.3.tar.bz2

tar xjvf gcc-4.9.3.tar.bz2
cd gcc-4.9.3
./contrib/download_prerequisites

  • 安装gcc需要5个组件,download_prerequisites 的任务就是下载这些组件分别是:
cloog-0.18.1
gmp-4.3.2
isl-0.12.2
mpc-0.8.1
mpfr-2.4.2

  • 如果遇到download_prerequisites里面的地址无法访问 
    推荐自行下载这些组件到目录gcc-4.9.3/,解压。 
    然后将download_prerequisites里面的wget全部注释掉,再执行 :
./contrib/download_prerequisites
  • 做好上面的准备就可以configure了,建议另建一个目录来存放编译文件,默认安装目录是 /usr/local/ 可以使用 –prefix 修改自定义路径。
cd ..
mkdir gcc-4.9.3-build-temp
cd gcc-4.9.3-build-temp
../gcc-4.9.3/configure --enable-checking=release --enable-languages=c,c++ --disable-multilib 若报错: configure: error: C compiler cannot create executables 安装glibc-devel试试
make -j 4
make install
  • 编译过程中报莫名其妙的错误,尝试使用root用户或者root权限编译

  • 编译过程很慢,一切顺利的话,取决于你的配置40分钟-1个小时后再来看结果吧

  • 在.bashrc中配置库文件和头文件路径

    export LD_LIBRARY_PATH=/usr/local/lib:/usr/local/lib64/:$LD_LIBRARY_PATH
    export C_INCLUDE_PATH=/usr/local/include/:$C_INCLUDE_PATH
    export CPLUS_INCLUDE_PATH=/usr/local/include/:$CPLUS_INCLUDE_PATH
  • 执行 gcc -v 可以看到下面的信息
  • gcc -v
    使用内建 specs。
    COLLECT_GCC=gcc
    COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc/x86_64-unknown-linux-gnu/4.9.3/lto-wrapper
    目标:x86_64-unknown-linux-gnu
    配置为:../gcc-4.9.3/configure --enable-checking=release --enable-languages=c,c++ --disable-multilib
    线程模型:posix
    gcc 版本 4.9.3 (GCC)
  • ################################################################

  • 三,升级python到2.7

  • 1,下载
    https://www.python.org/ftp/python/2.7.8/Python-2.7.8.tgz
  • 2,上传,解压sudo  tar -zxvf Python-2.7.8.tgz
    3,安装:cd Python-2.7.8 ;

        (1)sudo mkdir /usr/local/python27;
        (2)sudo yum install zlib-devel  openssl-devel
        (3)sudo ./configure --prefix=/usr/local/python27  --enable-shared CFLAGS=-fPIC
                            (./configure --prefix=/usr/local/python27 --enable-optimizations --enable-shared CFLAGS=-fPIC )
                            (sudo env PYTHON_CONFIGURE_OPTS="--enable-shared" ./configure --prefix=/usr/local/python27)

    (4)sudo make      若出以下错误,参考下面解决办法

    ********************************************************************
    sudo yum install -y readline-devel
    sudo yum install -y sqlite-devel
    sudo yum install -y bzip2-devel
    sudo yum install -y openssl-devel
    sudo yum install -y gdbm-devel
    sudo yum install -y libdbi-devel
    sudo yum install -y ncurses-libs
    sudo yum install -y zlib-devel
    ************************************************************************
    (5)sudo  make install 
    (6)sudo mv /usr/bin/python /usr/bin/python_old
    (7)sudo ln -s /usr/local/python27/bin/python2.7    /usr/bin/python
    (8)/usr/bin/cc   /usr/bin/c++     ln -s /usr/local/bin/cc  /usr/bin/cc             ln -s /usr/local/bin/c++    /usr/bin/c++

    (9)python               #终端下测试

    [wgl@wgl bin]$ python
    Python 2.7.8 (default, Jul 13 2017, 00:40:06)
    [GCC 4.4.7 20120313 (Red Hat 4.4.7-4)] on linux2
    Type "help", "copyright", "credits" or "license" for more information.
    >>> exit()

    此时已经可以正常使用python2.7了,但是因为yum是使用的2.6的版本来用的,现在输入一下yum就会报错

    vim /usr/bin/yum

    将 #!/usr/bin/python

    改为#!/usr/bin/python2.6

###################################################################
  • 四,升级gdb

  • 在python升级后在执行下面的:

  • 升级完gcc还需要升级gdb!!! 因为版本不匹配等原因导致调试的时候 print变量提示找不到符号,以及其他莫名其妙的问题…

  • 这里我选择安装的时候gdb-7.9 ,安装gdb需要4个组件 ,python,python-devel ,texinfo,ncurses-devel

  • 编译gdb时报错误 configure: error: no termcap library found 是缺少 ncurses-devel
  • 编译过程中遇到莫名奇妙的报错,例如:ser-unix.c:118:1: error: conflicting types for ‘get_tty_state’,清理干净configure目录,使用root用户安装就好了
sudo yum install texinfo
sudo yum install ncurses-devel
####sudo yum install python
sudoyum install python-devel
wget http://mirrors.ustc.edu.cn/gnu/gdb/gdb-7.9.tar.gz
tar xzvf gdb-7.9.tar.gz
cd gdb-7.9
./configure --with-python
sudo make
sudo make install
  • 如果在安装过程中提示找不到makeinfo命令或其他错误,切换root用户再试一次

  • 没有python的支持也可以编译去掉–with-python选项就行了,但是gdb是无法加载python脚本的,例如c++ 的 pretty-printer 脚本是无法使用的

######################################################################

五,boost安装 (可跳过第三步,用第四步) 参考:http://www.cnblogs.com/findumars/p/6253092.html

1、下载并解压boost 1.58 源代码

可以去boost的官网下载http://jaist.dl.sourceforge.net/project/boost/boost/1.58.0/boost_1_58_0.tar.bz2

解压 tar -xjf boost_1_58_0.tar.bz2

2、运行bootstrap.sh

bootstrap.sh是用来检查安装环境的,如果报错了,看一下是缺少了什么,安装一下即可(g++)。

./bootstrap.sh --with-libraries=python

运行完成之后会在当前目录生成一些文件,用于下一步安装。

3、使用b2进行构建

b2是上一步成功后生成的,使用它来进行构建boost库。

sudo ./b2

这里也可能遇到错误,比如没有bzlib.h这个头文件的。

cc.compile.c++ bin.v2/libs/iostreams/build/gcc-4.9.2/release/link-static/threading-multi/bzip2.o
libs/iostreams/src/bzip2.cpp:20:56: fatal error: bzlib.h: 没有那个文件或目录
#include "bzlib.h" // Julian Seward's "bzip.h" header. ^
compilation terminated.

解决办法也是很简单的,执行下面的语句

sudo yum install zlib-devel  openssl-devel

构建成功的提示

The Boost C++ Libraries were successfully built!

The following directory should be added to compiler include paths:

    /home/o/Boost库/boost_1_58_0

The following directory should be added to linker library paths:

    /home/o/Boost库/boost_1_58_0/stage/lib

上面两句的意思是提示你编译使用了boost库的代码的时候指定的include目录和lib目录位置。

4、安装boost库到指定目录

第三步骤只是说了构建的情况,其实这已经可以用了。如果想安装boost库到指定目录,比如说usr/local目录,可以使用下面的命令来进行。

sudo ./b2 --prefix=/usr/local/boost install

安装以后编译代码的时候还是要指定目录,可以将它添加到环境变量CPLUS_INCLUDE_PATHLIBRARY_PATH中去。

export CPLUS_INCLUDE_PATH=/usr/local/boost/include
export LIBRARY_PATH=/usr/local/boost/lib ****************************************

export CPLUS_INCLUDE_PATH=/usr/local/boost/include/:/usr/local/boost/include/boost/:$CPLUS_INCLUDE_PATH

export LIBRARY_PATH=/usr/local/boost/lib

export PYTHON_INCLUDE_PATH=/usr/local/boost/include/:/usr/local/boost/include/boost:$PYTHON_INCLUDE_PATH

export BOOST_LIBRARYDIR=/usr/local/boost/lib/:$BOOST_LIBRARYDIR

export BOOST_ROOT=/usr/local/boost export BOOST_HOME=/usr/local/boost

export BOOST_INCLUDE_DIR=/usr/local/boost/include:/usr/local/boost/:/usr/local/boost/include/boost

export BOOST_LIBRARYDIR=/usr/local/boost/lib:/usr/local/boost


****************************************

这只是临时的,乐意的可以写入/etc/profile文件中。

--  **************************************************************

--  To compile Boost.Python yourself download boost from boost.org and then go into the boost root folder

--  and run these commands:

--     ./bootstrap.sh --with-libraries=python

--     sudo ./b2  --prefix=/usr/local/boost install

--  ***************************************************************

5、测试一下

先写一个简单的获取当前日期的小程序

代码

#include <boost/date_time/gregorian/gregorian.hpp>
#include <iostream>
int main()
{
boost::gregorian::date d(boost::gregorian::day_clock::local_day());
std::cout << d.year() << d.month() <<d.day() << std::endl;
}

编译运行

g++ -I /usr/local/boost/include -L /usr/local/boost/lib boost.cpp -o boost

 ./boost 

2015Jul9

##################################################################

六,安装cmake

下载 https://cmake.org/files/v3.7/cmake-3.7.2.tar.gz  ,上传
解压:ta  -zxvf  cmake-3.7.2.tar.gz  ;  cd cmake-3.7.2;
      1)   ./bootstrap
      2)   gmake
      3)  sudo gmake install
      4)[wgl@wgl bin]$ sudo ln -s /usr/local/bin/cmake  /usr/bin/cmake
            [wgl@wgl bin]$ sudo ln -s /usr/local/bin/cpack  /usr/bin/cpack
            [wgl@wgl bin]$ sudo ln -s /usr/local/bin/ctest  /usr/bin/ctest  
#########################################################################
七,安装  BLAS
(1)下载 http://www.openblas.net/ 
(2)解压:tar -zxvf OpenBLAS-0.2.19.tar.gz ; cd OpenBLAS-0.2.19;
(3)添加  #define NO_AVX2 1024  到 cpuid.h 文件的倒数第2行 
(4)sudo make    若报一下错误,参考下面解决办法 
***************************************************************************

 sudo ln -s /usr/lib64/libgfortran.so.3.0.0  /usr/lib64/libgfortran.so
****************************************************************************
(5)sudo make  install
###########################################################

八,安装python的包管理工具

1、安装pip前需要前置安装setuptools

unzip setuptools-36.0.1.zip

cd setuptools-36.0.1

sudo python setup.py build
sudo python setup.py install

报错: RuntimeError: Compression requires the (missing) zlib module

我们需要在linux中安装zlib-devel包,进行支持。

yum install zlib-devel

需要对python2.7进行重新编译安装。

cd Python-2.7.8
sudo make
sudo make install

重新安装setuptools

sudo python setup.py build
sudo python setup.py install

2、安装pip

tar -zxvf pip-9.0.1.tar.gz
cd pip-9.0.1

sudo python setup.py build

sudo python setup.py install

如果没有意外的话,pip安装完成。

 
建立软连接
ln -s /usr/local/python27/bin/pip /usr/bin/pip
ln -s /usr/local/python27/bin/pip2 /usr/bin/pip2
ln -s /usr/local/python27/bin/pip2.7 /usr/bin/pip2.7
ln -s /usr/local/python27/bin/easy_install /usr/bin/easy_install
ln -s /usr/local/python27/bin/easy_install-2.7 /usr/bin/easy_install-2.7
 

正式安装python模块

############################################################
安装dlib     https://pypi.python.org/pypi/dlib                  dlib-19.4.0.tar.gz
sudo pip install  dlib-19.4.0.tar.gz      OK        (sudo yum install kernel-devel-$(uname -r) kernel-headers-$(uname -r))
*********************************************************************
测试:导入模块

解决:

 
找到 libopenblas.so.0所在路径:/opt/OpenBLAS/lib

sudo vi /etc/ld.so.conf   添加一行/opt/OpenBLAS/lib
sudo  /sbin/ldconfig -v
 
若报错:
linux-wgl:~ # python
Python 2.7.8 (default, Sep 13 2017, 16:30:53)
[GCC 4.9.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import dlib
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/python27/lib/python2.7/site-packages/dlib/__init__.py", line 1, in <module>
    from .dlib import *
ImportError: /usr/lib64/libboost_python.so.1.36.0: undefined symbol: PyUnicodeUCS4_FromEncodedObject
>>>
 
将boost的lib下的libboost_python.so替换/usr/lib64下的。
********************************************************************

############################################################

安装numpy   https://pypi.python.org/pypi/numpy
sudo pip install numpy-1.13.1-cp27-cp27m-manylinux1_x86_64.whl
############################################################
安装scipy    https://pypi.python.org/pypi/scipy
sudo pip install scipy-0.19.1-cp27-cp27m-manylinux1_x86_64.whl
############################################################

安装matplotlib  https://pypi.python.org/pypi/matplotlib

sudo pip install matplotlib-2.0.2-cp27-cp27m-manylinux1_x86_64.whl(因缺少依赖,先安装依赖,可根据报错信息查找依赖,下载包,安装)
如:依赖cycler>=0.10
下载地址https://pypi.python.org/pypi/XXX(xxx为缺少的组件)

https://pypi.python.org/pypi/cycler                   sudo pip install cycler-0.10.0-py2.py3-none-any.whl
https://pypi.python.org/pypi/six                        sudo pip install six-1.10.0-py2.py3-none-any.whl

https://pypi.python.org/pypi/pyparsing             sudo pip install pyparsing-2.2.0-py2.py3-none-any.whl

https://pypi.python.org/pypi/subprocess32      sudo pip install subprocess32-3.2.7.tar.gz
https://pypi.python.org/pypi/functools32         sudo pip install functools32-3.2.3-2.tar.gz
#############################################################
安装skimage    https://pypi.python.org/pypi/scikit-image
sudo pip install scikit_image-0.13.0-cp27-cp27m-manylinux1_x86_64.whl(因缺少依赖,先安装依赖,可根据报错信息查找依赖,下载包,安装)
https://pypi.python.org/pypi/networkx              sudo pip install networkx-1.11-py2.py3-none-any.whl
https://pypi.python.org/pypi/decorator              sudo pip install decorator-4.0.11-py2.py3-none-any.whl

############################################################
安装imtools
sudo pip install imtools-0.1.11.tar.gz           https://pypi.python.org/pypi/imtools
###############################################################
全部完成:

 ###############################################################
可能优化:

1、CUDA安装 
官方下载:https://developer.nvidia.com/cuda-downloads

sudo rpm -i cuda-repo-rhel7-8.0.44-1.x86_64.rpm
sudo yum clean all
sudo yum install cuda
sudo rpm -ihv libvdpau-0.9-1.el6.x86_64.rpm
sudo rpm -ihv dkms-2.1.1.2-1.el6.rf.noarch.rpm --nodeps

2、cuDNN安装

官网下载:https://developer.nvidia.com/rdp/cudnn-download

然后把lib文件加入到系统能找到的lib文件夹里, 把头文件加到系统能找到的include文件夹里就可以。这里把他们加到CUDA的文件夹下。

tar -zxf cudnn-7.5-linux-x64-v5.0-ga.tgz
cd cuda
sudo cp -P lib64/* /usr/local/cuda/lib64/
sudo cp -P include/* /usr/local/cuda/include/
sudo chmod a+r /usr/local/cuda/lib64/libcudnn*

#########################################################

python机器学习模块安装的更多相关文章

  1. SUSE Linux Enterprise 11 离线安装 DLIB python机器学习模块

    python机器学习模块安装 环境:SUSE Linux Enterprise 11 sp4  离线安装 说明:在安装dlib时依赖的基础 环境较多,先升级gcc,以适应c++ 11的使用:需要用到c ...

  2. SUSE Linux Enterprise 11 离线安装 DLIB 人脸识别 python机器学习模块

    python机器学习模块安装 我的博客:http://www.cnblogs.com/wglIT/p/7525046.html 环境:SUSE Linux Enterprise 11 sp4  离线安 ...

  3. python 相关模块安装 国内镜像地址

    python 相关模块安装 国内镜像地址 pipy国内镜像目前有: http://pypi.douban.com/  豆瓣 http://pypi.hustunique.com/  华中理工大学 ht ...

  4. Python Pygal 模块安装和使用你get了吗?

    Pygal 是另一个简单易用的数据图库,它以面向对象的方式来创建各种数据图,而且使用 Pygal 可以非常方便地生成各种格式的数据图,包括 PNG.SVG 等.使用 Pygal 也可以生成 XML e ...

  5. Python中模块安装文件的创建及使用

    在Python编程中,我们常常需要自己编写模块,当模块文件写好了,就需要创建安装文件,方便模块的发布. 此时,常用的方法,就是使用Python distutils(代表distribution uti ...

  6. python之模块安装

    在python中,python官方提供了很多可以扩展的包,用以增强python的功能. 因为用到了excel的读写功能,需要安装xlrd的包,一下是安装步骤 1.首先从python的官方库下载相应的包 ...

  7. Python Paramiko模块安装和使用

    1.简介 大家会发现,常见的解决方法都会需要对远程服务器必要的配置,如果远程服务器只有一两台还好说,如果有N台,还需要逐台进行配置,或者需要使用代码进行以上操作时,上面的办法就不太方便了. 使用par ...

  8. Python 第三方模块安装出现的问题和解决方案.

    出现此类问题 A) ImportError: cannot import name '_win32stdio'B) ImportError: No module named 'win32api' 需要 ...

  9. 开源的python机器学习模块

    1. Scikit-learn Scikit-learn 是基于Scipy为机器学习建造的的一个Python模块,他的特色就是多样化的分类,回归和聚类的算法包括支持向量机,逻辑回归,朴素贝叶斯分类器, ...

随机推荐

  1. Zepto源码分析-ajax模块

    源码注释 // Zepto.js // (c) 2010-2015 Thomas Fuchs // Zepto.js may be freely distributed under the MIT l ...

  2. Adobe After Effects 2017-14.0安装教程

    Adobe After Effects 2017-14.0安装教程 第一步:首先请将电脑的网络断开,很简单:禁用本地连接或者拔掉网线,这样就可以免除登录Creative Cloud帐号,安装更方便快捷 ...

  3. 热部署环境下,dubbo序列化的bug和优化

    一.问题的发现与解决 (1)     在热部署下,使用dubbo的序列化一个pojo对象,反序列化时报错:ClassNotFoundException. 最后发现原因是我们的框架选择使用了java序列 ...

  4. 与我们息息相关的internet服务(1)---域名服务

    在起步一个公司,从组建的技术上,可能要准备很多东西,其中一个就是我们熟悉的域名-----域名可以用在邮箱中.网站中等等 域名,听起来很怪的一个词(他类似于电话本的作用),但理解起来很简单,想法也很简单 ...

  5. Python初探

    Q:DBA是运维数据库,为什么还要懂开发? A: 维护:维护的机器太多了,很多重复的操作,需要开发出工具来实现 监控:所有机器的运行情况和健康状况都需要了解,全盘掌握cup.内存.磁盘.网络流量.数据 ...

  6. 关于HBuilder的一些使用技巧。

    在HBuilder中一个名为扩展代码块的功能. 扩展代码块 看,它就在上方工具栏的工具选项中,分为自定义html代码块, 自定义js代码块, 自定义css代码块, 自定义jquery代码块. 以下便是 ...

  7. Java模拟http请求调用远程接口工具类

    package ln; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamRea ...

  8. 移动办公OA系统

    好久没有更新文章了,总觉得心里空空的,最近由于工作的原因,没有来的及及时更新,总感觉应该把学习到的东西做个记录,供大家学习,也供自己复习,温故而知新.今天趁着周末休息时间,把自己最近在公司的做的项目做 ...

  9. React + Redux + express+ antd 架构的认识

    在过去的两周里,我使用这套技术栈进行项目页面的开发.下面是我个人的对于项目的一些看法: 首先:是项目的调试,我深表压力很大,项目是使用fibber去抓包调试的,也不知道我们项目的负责人,怎么能的我在每 ...

  10. 摘抄自知乎的redis相关

    1.知乎日报的基础数据和统计信息是用 Redis 存储的,这使得请求的平均响应时间能在 10ms 以下.其他数据仍然需要存放在另外的地方,其实完全用 Redis 也是可行的,主要的考量是内存占用.就使 ...