安装前提
1.TensorFlow只支持64位平台
2.Centos6.5默认安装的python是2.6版本的,TensorFlow要求是2.7.x或3.x
3.需要用pip3进行安装,pip不行
4.由于GFW,需要更改pip源为国内源
5.Centos6.5的glibc库版本最高为2.14,但是tensorflow需要glibc库版本为2.16,需要手动升级,为了不必要的麻烦,可以选用更高版本的操作系统安装tensorflow
安装步骤
更新python版本
Centos6.5默认安装的python版本为2.6.6,需要将其升级至python3,这里选择安装python3.6.4
从官网https://www.python.org/downloads/source/下载python安装包,这里选择较新的版本python3.6.4
上传和解压
[root@slave1tensorflow]# tar -xf Python-3.6.4.tar.xz
安装必须要的依赖
在编译之前需要安装一些必须的依赖,否则当报错的时候还得重新编译
[root@slave1tensorflow]#yum install openssl-devel -y
[root@slave1tensorflow]#yum install zlib-devel-y
编译安装
[root@slave1Python-3.6.4]# cd Python-3.6.4
[root@slave1Python-3.6.4]# ./configure --prefix=/opt/Python #安装目录可以自己定义无所谓。
[root@slave1Python-3.6.4]#make && make install
[root@slave1Python-3.6.4]# ln-s /opt/Python/bin/python3 /usr/bin/python3
输入python3进行版本验证:
[root@slave1tensorflow]#python3
Python3.6.4 (default,Jan 19 2018,14:37:12)
[GCC4.4.7 20120313 (Red Hat 4.4.7-4)] on linux
Type"help","copyright","credits" or"license" for more information.
更新pip至pip3
安装setuptools
可通过官方模板库进行下载:https://pypi.python.org/pypi,这里选择wget进行下载:
[root@slave1 tensorflow]# wget--no-check-certificatehttps://pypi.python.org/packages/source/s/setuptools/setuptools-19.6.tar.gz#md5=c607dd118eae682c44ed146367a17e26
[root@slave1tensorflow]# tar -zxvf setuptools-19.6.tar.gz
[root@slave1setuptools-19.6]# cd setuptools-19.6
[root@slave1setuptools-19.6]# python3 setup.py build
[root@slave1setuptools-19.6]# python3 setup.py install
安装pip3
[root@slave1tensorflow]# wget --no-check-certificatehttps://pypi.python.org/packages/source/p/pip/pip-8.0.2.tar.gz#md5=3a73c4188f8dbad6a1e6f6d44d117eeb
tar-zxvf pip-8.0.2.tar.gz
[root@slave1tensorflow]# cd pip-8.0.2
[root@slave1pip-8.0.2]# python3 setup.py build
[root@slave1pip-8.0.2]# python3 setup.py install
[root@slave1pip-8.0.2]# ls /opt/Python/bin/
[root@slave1 tensorflow]# ln -s /opt/Python/bin/pip3 /usr/bin/pip3
[root@slave1tensorflow]# pip3 -V
更新pip源至国内
[root@slave1home] mkdir -p ~/.pip
创建配置文件:
[root@slave1home] vim~/.pip/pip.conf
[global]
index-url= http://mirrors.aliyun.com/pypi/simple/
[install]
trusted-host=mirrors.aliyun.com
其他国内源地址如下:
中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/
豆瓣(douban) http://pypi.douban.com/simple/
清华大学 https://pypi.tuna.tsinghua.edu.cn/simple/
中国科学技术大学 http://pypi.mirrors.ustc.edu.cn/simple/
现在使用pip安装组件就可以体会到飞一般的速度了。
如果是临时使用国内地址可以在安装组件的时候加参数-i
pipinstall nose -i http://mirrors.aliyun.com/pypi/simple
安装TensorFlow
[root@slave1 tensorflow]# pip3 installtensorflow
Collectingtensorflow
Couldnot find a version that satisfies the requirement tensorflow (from versions: )
Nomatching distribution found for tensorflow
Youare using pip version 8.0.2,however version 9.0.1 is available.
Youshould consider upgrading via the 'pip install --upgrade pip' command.
发现pip3版本过低,需要对pip3版本进行更新,如下:
[root@slave1tensorflow]# pip3 install --upgrade pip
[root@slave1tensorflow]# pip3 install tensorflow
至此,Centos6.5安装tensorflow成功!
报错指南
GLIBC_2.16 not found
现象
运行import tensorflow as tf报错:
ImportError: /lib64/libc.so.6: version `GLIBC_2.16'not found (required by/opt/Python/lib/python3.6/site-packages/tensorflow/python/_pywrap_tensorflow_internal.so)
出现原因
Centos6.5的GLIBC版本太低,最高为2.14,不满足tensorflow的要求,需要再安装GLIBC_2.16
解决办法
安装GLIBC_2.17
yum install gcc
wget http://ftp.gnu.org/pub/gnu/glibc/glibc-2.17.tar.gz
tar -zxvf glibc-2.17.tar.gz
cd glibc-2.17
mkdir build
cd build
../configure --prefix=/usr --disable-profile--enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin
make && make install
需要等大概10分钟。
输入strings /lib64/libc.so.6|grep GLIBC发现已经更新
GLIBC_2.2.5
GLIBC_2.2.6
GLIBC_2.3
GLIBC_2.3.2
GLIBC_2.3.3
GLIBC_2.3.4
GLIBC_2.4
GLIBC_2.5
GLIBC_2.6
GLIBC_2.7
GLIBC_2.8
GLIBC_2.9
GLIBC_2.10
GLIBC_2.11
GLIBC_2.12
GLIBC_2.13
GLIBC_2.14
GLIBC_2.15
GLIBC_2.16
GLIBC_2.17
GLIBC_PRIVATE
参考资料
http://blog.csdn.net/levy_cui/article/details/51251095
CXXABI_1.3.7 not found
现象
Python3中运行import tensorflowas tf报错:
ImportError: /usr/lib64/libstdc++.so.6: version`CXXABI_1.3.7' not found (required by /opt/Python/lib/python3.6/site-packages/tensorflow/python/_pywrap_tensorflow_internal.so)
出现原因
解决办法
在系统中找到高版本的CXXABI库,并替换。
1.查找系统CXXABI的版本
strings /lib64/libc.so.6|grep CXXABI
2.查找编译gcc时生成的最新动态库:
[root@slave1 tensorflow]# find / -name"libstdc++.so.*"
/opt/cloudera/parcels/CDH-5.7.0-1.cdh5.7.0.p0.45/lib/impala/lib/libstdc++.so.6.0.20
/opt/cloudera/parcels/CDH-5.7.0-1.cdh5.7.0.p0.45/lib/impala/lib/libstdc++.so.6
/usr/share/gdb/auto-load/usr/lib64/libstdc++.so.6.0.13-gdb.pyc
/usr/share/gdb/auto-load/usr/lib64/libstdc++.so.6.0.13-gdb.pyo
/usr/share/gdb/auto-load/usr/lib64/libstdc++.so.6.0.13-gdb.py
/usr/share/gdb/auto-load/usr/lib/libstdc++.so.6.0.13-gdb.pyc
/usr/share/gdb/auto-load/usr/lib/libstdc++.so.6.0.13-gdb.pyo
/usr/share/gdb/auto-load/usr/lib/libstdc++.so.6.0.13-gdb.py
/usr/lib64/libstdc++.so.6.0.20
/usr/lib64/libstdc++.so.6.0.13
/usr/lib64/libstdc++.so.6
/usr/lib64/libstdc++.so.6.bak
3.将新版本的动态库复制到/usr/lib64/中
cp/opt/cloudera/parcels/CDH-5.7.0-1.cdh5.7.0.p0.45/lib/impala/lib/libstdc++.so.6.0.20/usr/lib64/
4.重新创建软连接
cd /usr/lib64/
mv libstdc++.so.6 libstdc++.so.6.bak
ln -s libstdc++.so.6.0.20 libstdc++.so.6
[root@slave1 lib64]# strings/usr/lib64/libstdc++.so.6 | grep 'CXXABI'
CXXABI_1.3
CXXABI_1.3.1
CXXABI_1.3.2
CXXABI_1.3.3
CXXABI_1.3.4
CXXABI_1.3.5
CXXABI_1.3.6
CXXABI_1.3.7
CXXABI_1.3.8
CXXABI_TM_1
至此,解决完成
参考资料:http://blog.csdn.net/ZX714311728/article/details/69628836