centos6及centos7平台上搭建人工智能深度学习框架tensorflow

centos6及centos7平台上搭建人工智能深度学习框架tensorflow

  • 安装前说明
  • centos6(以centos6.6演示)源码安装python3和tensorflow
    • 观看centos自带的python版本
    • 安装必要的依赖包
    • 解压python3并编译安装
    • 建立软链接
    • 升级pip3
    • 使用pip3安装tensorflow
    • 升级GLIBC_2.12 到GLIBC_2.17
    • 升级CLIBCXX(可选)
    • 测试tensorflow安装完成
  • centos7(以centos7.2演示)源码安装python3和tensorflow
    • 安装gcc编译器及其他依赖包
    • 解压python3 并编译安装
    • 建立python3软链接
    • 安装tensorflow
      • 升级pip3
      • 安装tensorflow
    • 测试代码

本次博客的目的是在CentOS6.X和7.X版本上源码安装Python3和人工智能深度学习框架Tensorflow,其中的部分过程是为了演示升级操作,方便以后所需,所以可能有些繁琐(或者有些没必要),但了解它是很有用处的。

安装前说明

  1. tensorflow 只支持64位的平台,只需要你安装的虚拟机是64位即可,不要求实体机
  2. centos6.X默认安装的python是2.X的版本
  3. tensorflow要求是2.7.x或3.X(以后只支持3.X)
  4. 需要更改pip源为国内源
  5. 如果使用的是centos6.X的操作系统,它支持的glibc库版本最高的是2.14(centos6.6),而tensorflow需要glibc库版本为2.17,所以需要手动升级,而centos7.X可以 选用更高版本。

centos6(以centos6.6演示)源码安装python3和tensorflow

观看centos自带的python版本

[hadoop@s1 ~]$ python -V  # 注意是大写的V
Python 2.6.6

安装必要的依赖包

[hadoop@s1 ~]$ gcc -v # 注意是小写的v
bash: gcc: command not found
[hadoop@s1 ~]$ sudo yum install -y gcc  zlib*  openssl-devel

主要是升级了c编译器
在编译之前需要安装一些必须的依赖,否则当报错的时候还得重新编译

[hadoop@s1 ~]$ gcc -v # 注意是小写的v
Using built-in specs.
Target: x86_64-redhat-linux
……
gcc version 4.4.7 20120313 (Red Hat 4.4.7-23) (GCC)

解压python3并编译安装

在这里插入图片描述

  1. 将python3.6的压缩包使用远程传输工具传输到虚拟机的~/downloads目录,如果没有该目录请使用命令创建或手动创建
  2. 在家目录下创建目录python3.6
  3. 解压~/downloads/Python-3.6.4.tgz 到家目录下的python3.6目录:在这里插入代码片:[hadoop@s1 ~]$ tar -zxvf downloads/Python-3.6.4.tgz -C python3.6
  4. 安装python3.6,安装目录/usr/local/python3
cd python3.6/Python-3.6.4 #注意前一个python的p是小写后一个是大写
./configure --prefix=/usr/local/python3 --with-ssl
  1. 执行编译和安装命令
make  //编译
sudo  make  install  //安装,必须加sudo

建立软链接

[hadoop@s1 Python-3.6.4]$ cd /usr/bin
[hadoop@s1 bin]$ sudo ln -s /usr/local/python3/bin/python3.6  python3

测试:

[hadoop@s1 bin]$ python3
Python 3.6.4 (default, Aug 30 2019, 14:08:43) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-23)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>

升级pip3

可供pip安装源:

阿里云 https://mirrors.aliyun.com/pypi/simple/ 
中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/ 
豆瓣(douban) https://pypi.douban.com/simple/ 
清华大学 https://pypi.tuna.tsinghua.edu.cn/simple/ 
中国科学技术大学 http://pypi.mirrors.ustc.edu.cn/simple/

执行以下命令升级:

[hadoop@s1 Python-3.6.4]$ cd /usr/local/python3/bin
[hadoop@s1 bin]$ sudo ./pip3 install --upgrade pip -i https://pypi.tuna.tsinghua.edu.cn/simple/ 

使用pip3安装tensorflow

在这里插入图片描述
将该文件传输到~/downloads目录下

  • 执行命令:
cd /usr/local/python3/bin
sudo ./pip3 install ~/downloads/tensorflow-1.1.0rc1-cp36-cp36m-manylinux1_x86_64.whl -i https://mirrors.aliyun.com/pypi/simple/

也可以使用pip install tensorflow命令安装,这种方式会安装最新版的

升级GLIBC_2.12 到GLIBC_2.17

升级原因:
进入python环境,导入tensorflow的包

>>> import tensorflow as tf
Traceback (most recent call last):
  File "/usr/local/python3/lib/python3.6/site-packages/tensorflow/python/pywrap_tensorflow.py", line 41, in 
    from tensorflow.python.pywrap_tensorflow_internal import *
  File "/usr/local/python3/lib/python3.6/site-packages/tensorflow/python/pywrap_tensorflow_internal.py", line 28, in 
    _pywrap_tensorflow_internal = swig_import_helper()
  File "/usr/local/python3/lib/python3.6/site-packages/tensorflow/python/pywrap_tensorflow_internal.py", line 24, in swig_import_helper
    _mod = imp.load_module('_pywrap_tensorflow_internal', fp, pathname, description)
  File "/usr/local/python3/lib/python3.6/imp.py", line 243, in load_module
    return load_dynamic(name, filename, file)
  File "/usr/local/python3/lib/python3.6/imp.py", line 343, in load_dynamic
    return _load(spec)
ImportError: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by /usr/local/python3/lib/python3.6/site-packages/tensorflow/python/_pywrap_tensorflow_internal.so)

通过最后一句话可以看出运行这个版本的tensorflow需要GIBC_2.14

  • 升级到GLIBC_2.17
    下载glibc-2.17.tar.gz并上传到~/downloads
    在这里插入图片描述

解压到当前压缩包所在的~/downloads目录

执行以下命令:

cd ~/downloads/glibc-2.17
mkdir build	//在glibc-2.17目录下建立build文件夹
cd build
../configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin  

make
sudo make install

升级CLIBCXX(可选)

上述步骤安装完成后,再次进入python环境测试:

import tensorflow as tf
Traceback (most recent call last):
  File "/usr/local/python3/lib/python3.6/site-packages/tensorflow/python/pywrap_tensorflow.py", line 41, in 
    from tensorflow.python.pywrap_tensorflow_internal import *
  File "/usr/local/python3/lib/python3.6/site-packages/tensorflow/python/pywrap_tensorflow_internal.py", line 28, in 
    _pywrap_tensorflow_internal = swig_import_helper()
  File "/usr/local/python3/lib/python3.6/site-packages/tensorflow/python/pywrap_tensorflow_internal.py", line 24, in swig_import_helper
    _mod = imp.load_module('_pywrap_tensorflow_internal', fp, pathname, description)
  File "/usr/local/python3/lib/python3.6/imp.py", line 243, in load_module
    return load_dynamic(name, filename, file)
  File "/usr/local/python3/lib/python3.6/imp.py", line 343, in load_dynamic
    return _load(spec)
ImportError: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.14' not found (required by /usr/local/python3/lib/python3.6/site-packages/tensorflow/python/_pywrap_tensorflow_internal.so)

如果仍然报错,且出现的错误为:ImportError: /usr/lib64/libstdc++.so.6: version GLIBCXX_3.4.14 not found (required by /usr/local/python3/lib/python3.6/site-packages/tensorflow/python/_pywrap_tensorflow_internal.so)

执行以下步骤:

  • 下载libstdc++.so_.6.0.20(libstdc++.so.6.0.20 含GLIBCXX_3.4.15 - GLIBCXX_3.4.20)
    在这里插入图片描述
  • 最新动态库libstdc++.so.6.0.20复制到/usr/lib64目录下:sudo cp ~/downloads/libstdc++.so.6.0.20 /usr/lib64
  • 复制后,修改系统默认动态库的指向,即:重建默认库的软连接:
cd /usr/lib64
#删除原来软连接:
sudo rm -rf libstdc++.so.6
#将默认库的软连接指向最新动态库:
sudo ln -s libstdc++.so.6.0.20 libstdc++.so.6

测试tensorflow安装完成

进入python环境,输入:

import tensorflow as tf
sess = tf.Session()
hello=tf.constant('Hello,Tensorflow!')
print(sess.run(hello))

看到结果为:
在这里插入图片描述
说明安装处成功

centos7(以centos7.2演示)源码安装python3和tensorflow

安装gcc编译器及其他依赖包

[hadoop@s1 ~]$ python -V
Python 2.7.5

[hadoop@s1 ~]$ gcc -v
bash: gcc: command not found...

[hadoop@s1 ~]$ sudo yum install -y gcc zlib* openssl-devel

解压python3 并编译安装

  1. 在家目录下创建目录python3.6
  2. 解压~/downloads/Python-3.6.4.tgz 到家目录下的python3.6目录
[hadoop@s1 ~]$ tar -zxvf downloads/Python-3.6.4.tgz  -C  python3.6
  1. 安装Python3.6,安装目录为/usr/local/python3
cd python3.6  #小写的p
cd Python-3.6.4  #大写的P
./configure --prefix=/usr/local/python3 --with-ssl

  1. 编译 安装
make  //编译
sudo  make  install  //安装,必须加sudo

建立python3软链接

[hadoop@s1 Python-3.6.4]$ cd /usr/bin
[hadoop@s1 bin]$ sudo ln -s /usr/local/python3/bin/python3.6  python3

这样就可以在任何目录下执行命令python3

[hadoop@s1 bin]$ python3
Python 3.6.4 (default, Aug 30 2019, 14:08:43) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-23)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>

安装tensorflow

升级pip3

cd /usr/local/python3/bin
sudo ./pip3 install --upgrade pip -i https://pypi.tuna.tsinghua.edu.cn/simple/ 

安装tensorflow

[hadoop@s1 bin]$ sudo ./pip3 install ~/downloads/tensorflow-1.1.0rc1-cp36-cp36m-manylinux1_x86_64.whl -i https://mirrors.aliyun.com/pypi/simple/ 

测试代码

进入python3
import tensorflow as tf
sess = tf.Session()
hello=tf.constant('Hello,Tensorflow!')
print(sess.run(hello))

在这里插入图片描述

安装成功!!!

你可能感兴趣的:(大数据技术与应用)