python机器学习模块安装

我的博客:http://www.cnblogs.com/wglIT/p/7525046.html

环境:SUSE Linux Enterprise 11 sp4  离线安装

说明:在安装dlib时依赖的基础 环境较多,先升级gcc,以适应c++ 11的使用;需要用到cmake编译工具,boost这个c++库,BLAS。python升级到2.7以上版本。

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

一,安装相关依赖包 

安装部分依赖:

sudo zypper install -y gcc-c++ gcc
sudo zypper install -y yum install gcc-gfortran
sudo zypper install boost
sudo zypper install boost-devel
sudo zypper install libX11-devel
sudo zypper install openssl-devel

另一种方式:下载rpm包,手动安装相关依赖

rpm -ihv boost-devel-1.36.0-12.6.49.x86_64.rpm
rpm -ihv bzip2-devel-1.0.5-7.el6_0.x86_64.rpm
rpm -ihv gdbm-devel-1.8.3-374.25.x86_64.rpm
rpm -ihv glibc-devel-2.11.3-17.54.1.x86_64.rpm
rpm -ihv keyutils-devel-1.2-107.29.15.x86_64.rpm
rpm -ihv krb5-devel-1.6.3-133.49.66.1.x86_64.rpm
rpm -ihv libboost_date_time1_36_0-1.36.0-12.6.49.x86_64.rpm
rpm -ihv libboost_filesystem1_36_0-1.36.0-12.6.49.x86_64.rpm
rpm -ihv libboost_graph1_36_0-1.36.0-12.6.49.x86_64.rpm
rpm -ihv libboost_iostreams1_36_0-1.36.0-12.6.49.x86_64.rpm
rpm -ihv libboost_math1_36_0-1.36.0-12.6.49.x86_64.rpm
rpm -ihv libboost_mpi1_36_0-1.36.0-12.6.49.x86_64.rpm
rpm -ihv libboost_program_options1_36_0-1.36.0-12.6.49.x86_64.rpm
rpm -ihv libboost_python1_36_0-1.36.0-12.6.49.x86_64.rpm
rpm -ihv libboost_regex1_36_0-1.36.0-12.6.49.x86_64.rpm
rpm -ihv libboost_serialization1_36_0-1.36.0-12.6.49.x86_64.rpm
rpm -ihv libboost_signals1_36_0-1.36.0-12.3.1.x86_64.rpm
rpm -ihv libboost_system1_36_0-1.36.0-12.6.49.x86_64.rpm
rpm -ihv libboost_test1_36_0-1.36.0-12.6.49.x86_64.rpm
rpm -ihv libboost_thread1_36_0-1.36.0-12.6.49.x86_64.rpm
rpm -ihv libboost_wave1_36_0-1.36.0-12.6.49.x86_64.rpm
rpm -ihv libcom_err-devel-1.41.9-2.14.3.x86_64.rpm
rpm -ihv libdbi-devel-0.8.3-4.el6.x86_64.rpm
rpm -ihv libopenssl-devel-0.9.8j-0.70.1.x86_64.rpm
rpm -ihv libselinux-devel-2.0.91-4.2.1.x86_64.rpm
rpm -ihv libsepol-devel-2.0.41-2.2.9.x86_64.rpm
rpm -ihv libX11-devel-1.6.3-9.3.x86_64.rpm
rpm -ihv ncurses-libs-5.7-4.20090207.el6.x86_64.rpm
rpm -ihv openssl-devel-1.0.1e-57.el6.x86_64.rpm
rpm -ihv python-devel-2.6.9-0.35.1.x86_64.rpm
rpm -ihv readline-devel-5.2-147.27.35.x86_64.rpm
rpm -ihv sqlite3-devel-3.7.6.3-1.4.4.1.x86_64.rpm
rpm -ihv xorg-x11-proto-devel-7.4-1.35.47.x86_64.rpm
rpm -ihv zlib-devel-1.2.7-0.12.3.x86_64.rpm

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

二,升级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 修改自定义路径。

(2)编译

    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
make -j 4
make install
  • · 编译过程中报莫名其妙的错误,尝试使用root用户或者root权限编译
  • · 编译过程很慢,一切顺利的话,取决于你的配置40分钟-1个小时后再来看结果吧
  • · 在/etc/profile中配置库文件和头文件路径
       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)

(3)  升级gdb

升级完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 zypper install texinfo
sudo zypper install ncurses-devel
sudo zypper 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 脚本是无法使用的

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

三,升级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    

若出以下错误,参考下面解决办法

http://blog.csdn.net/huanle0610/article/details/41174943

(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,c++,gcc等软连接到python2.7

     ln -s /usr/local/bin/cc     /usr/bin/cc
ln -s /usr/local/bin/c++ /usr/bin/c++
ln -s /usr/local/bin/gcc /usr/bin/gcc

(9)python      #终端下测试

若报错: error while loading shared libraries: libpython2.7.so.1.0: cannot open shared object file: No su

参考:http://blog.csdn.net/wanyanxgf/article/details/8021641

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

四,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 --prefix=/usr/local/boost   --without-icu --with-python=/usr/local/python27

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

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

3、安装boost库到指定目录

如果想安装boost库到指定目录,比如说usr/local目录,可以使用下面的命令来进行。

mkdir ../ boostbuild

Sudo ./b2 install --without-mpi   --build-type=complete --layout=tagged    --build-dir=../boostbuild

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

安装以后编译代码的时候还是要指定目录,可以将它添加到环境变量/etc/profile下:CPLUS_INCLUDE_PATH和LIBRARY_PATH等环境变量。


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

 

4、测试一下

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

代码

#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

若测试报错,请查看 http://blog.csdn.net/abcd1f2/article/details/49777715

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

五,安装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 (make TARGET=NEHALEM)   若报一下错误,参考下面解决办法

sudo ln -s /usr/lib64/libgfortran.so.3.0.0  /usr/lib64/libgfortran.so

http://blog.csdn.net/yasi_xi/article/details/8658191

(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模块

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

(1)安装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下的。

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

(2)安装numpy   https://pypi.python.org/pypi/numpy

sudo pip install numpy-1.13.1-cp27-cp27m-manylinux1_x86_64.whl

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

(3)安装scipy    https://pypi.python.org/pypi/scipy

sudo pip install scipy-0.19.1-cp27-cp27m-manylinux1_x86_64.whl

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

(4)安装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

若报错:

解决办法:

1,tar -zxvf  subprocess32-3.2.7.tar.gz

2,cd subprocess32-3.2.7

3,将libpython2.7.so拷贝到当前目录下

4,python setup.py build

5,python setup.py install

https://pypi.python.org/pypi/functools32

 sudo pip install functools32-3.2.3-2.tar.gz

https://pypi.python.org/pypi/python-dateutil

 sudo pip install python_dateutil-2.6.1-py2.py3-none-any.whl          

https://pypi.python.org/pypi/pytz

 sudo pip install pytz-2017.2-py2.py3-none-any.whl

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

(5)安装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/PyWavelets

 sudo pip install PyWavelets-0.5.2-cp27-cp27m-manylinux1_x86_64.whl

https://pypi.python.org/pypi/PyYAML

sudo pip install PyYAML-3.12.tar.gz

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   

https://pypi.python.org/pypi/pillow

sudo pip install Pillow-4.2.1-cp27-cp27m-manylinux1_x86_64.whl 

https://pypi.python.org/pypi/olefile

sudo pip install olefile-0.44.zip

################################################
(6)安装imtools

https://pypi.python.org/pypi/imtools

sudo pip install imtools-0.1.11.tar.gz     

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

全部完成:

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

可能优化:

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*

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

SUSE Linux Enterprise 11 离线安装 DLIB python机器学习模块的更多相关文章

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

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

  2. 虚拟机vmware10.0.0里设置Suse Linux Enterprise 11系统静态IP上网

    http://blog.csdn.net/usbdrivers/article/details/50035615 首次在虚拟机里安装Suse Linux Enterprise 11,采用NET方式能够 ...

  3. SUSE Linux Enterprise 11 SP4系统安装过程 字符界面

    首先开启虚拟机之后显示这个界面: (1) 进入之后显示下面界面,点击Installation安装. (2)进入Welcome界面,选择语言,默认Einglish(US)不需要改动:点击I Agree ...

  4. 在SUSE Linux Enterprise 11 SP1上用UDEV SCSI配置ASM

    1. 编辑/etc/scsi_id.config文件,如果该文件不存在,则创建该文件,添加如下行: options=–whitelisted –replace-whitespace 2. 获取需要绑定 ...

  5. Suse linux enterprise 11安装时更改磁盘模式为gpt的方法

    在进行鸟哥linux基础篇学习时,在"第3.2.2 选择安装模式与开机 -inst.gpt"中,鸟哥用到的CentOS 7需要用指令修改磁盘模式为gpt. 先用键盘选择Instal ...

  6. Suse linux enterprise 11添加设置中文输入法的方法

    Suse中输入法的设置没有在控制中心中,而是在应用程序里默认会安装好的SCIM输入法设置里边添加. 打开SCIM输入法设置->输入法引擎->全局设置,有很多国家的输入法可以选择,想要的找到 ...

  7. Welcome Docker to SUSE Linux Enterprise Server【水平有限,中英对比,求纠错】

      原文:Welcome Docker to SUSE Linux Enterprise Server Lightweight virtualization is a hot topic these ...

  8. SUSE Linux Enterprise Server 11 64T 安装(带清晰视频)

    SUSE Linux Enterprise Server 11 64T 安装实录 650) this.width=650;" onclick='window.open("http: ...

  9. SUSE Linux Enterprise Server 11 SP1安装图解教程

    一.说明:操作系统:SUSE Linux Enterprise Server 11 SP1下载地址:需要注册才能下载二.安装系统 用启动盘成功引导之后,出现下面的界面 系统运维 温馨提醒:qihang ...

随机推荐

  1. POJ 2386 Lake Counting (简单深搜)

    Description Due to recent rains, water has pooled in various places in Farmer John's field, which is ...

  2. easyui项目问题集锦

    1.级联问题(combobox) combobox至多可以保存2个东西value和text,但我需要第三个数的时候,怎么办?比如,省.市.区的三级级联,我选择市的时候,需要市id,市name,区号,邮 ...

  3. 使用Mapper专用的MyBatis Generator插件

    使用Maven执行MBG 这里有一个完整的例子,Mybatis-Spring,下面讲解的内容出自这个例子. 使用Maven插件的一个好处是可以将Maven中的属性使用${property}形式在gen ...

  4. CentOS编译PHP过程中常见错误信息的解决方法

    原文链接:http://www.linuxidc.com/Linux/2014-05/102327.htm ********************************************** ...

  5. python基础===随机打印txt文件中的某一行

    def find(): txt = open(r'F:\send1.txt','rb') data = txt.read().decode('utf-8') #python3一定要加上这句不然会编码报 ...

  6. VS2013 C++代码运行问题

    VS2013(工具集V120)下编译的C++代码,在win7运行错误,提示缺少msvcr230.dll,但是添加dll之后无效. 解决办法: 官方下载VS2013的C++运行库: vcredist_x ...

  7. JavaScript基础知识(二)

    一.JavaScript事件详解 1.事件流:描述的是在页面中结束事件的顺序 事件传递有两种方式:冒泡与捕获. 事件传递定义了元素事件触发的顺序. 如果你将 <p> 元素插入到 <d ...

  8. RabbitMQ --- Publish/Subscribe(发布/订阅)

    目录 RabbitMQ --- Hello Mr.Tua RabbitMQ --- Work Queues(工作队列) 前言 在第二篇文章中介绍了 Work Queues(工作队列),它适用于把一个消 ...

  9. [undefined,1] 和 [,1]的区别在哪里--认识js中的稀疏数组

    事情是这样的 今天我想写一个能快速生成一个自然数数组的函数,就是[0,1,2,3]这样的,然后我写了下面的代码: new Array(10).map((item, index) => { ret ...

  10. Action和Fuc的区别

    Action和Fuc的区别,参数和具体用法