centos 6.x 上 安装tensorflow 1.3 的一些问题总结
2017-09-08 17:06
567 查看
近期在测试服务器上安装tensorflow,由于测试服务器安装的是centos 6.5,遇到了各种问题,以下是各个问题的处理方法,供有需要的同学参考。
1、python里import tensorflow时报 “ImportError: /lib64/libc.so.6: version `GLIBC_2.17' not found (required by /usr/local/lib/python2.7/site-packages/tensorflow/python/_pywrap_tensorflow.so)”
主要是glibc的版本太低,默认的CentOS 6.5 glibc版本最高为2.12,
执行: strings /lib64/libc.so.6|grep GLIBC 查看目前系统支持的glibc的版本
[root@zhx-tserver2 build-2.17]# 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_PRIVATE
tensorflow需要glibc-2.17,需要升级glibc
1)下载glibc2.17:
wget http://ftp.gnu.org/gnu/glibc/glibc-2.17.tar.gz
2)解压:
tar -xzf glibc-2.17.tar.gz
3)创建build目录:
mkdir build
4)进入build目录编译glibc:
cd build
../glibc-2.17/configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin
make -j4
make install
注:如果执行configure的时候报configure: error: support for --no-whole-archive is needed,则把configure命令改成
../glibc-2.17/configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include
5)查看GLIBC版本
执行 strings /lib64/libc.so.6|grep GLIBC 查看版本已经支持GLIBC_2.17
[root@zhx-tserver2 build-2.17]# 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
2、python里import tensorflow时报“ImportError: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.18' not found (required by /opt/jmr/anaconda2/lib/python2.7/site-packages/tensorflow/python/_pywrap_tensorflow.so)”
GLIBCXX的版本太低,也需要更新,拷贝一个libstdc++.so.6.0.18到/usr/lib64/目录,做个软连接即可
cp libstdc++.so.6.0.18 /usr/lib64/
cd /usr/lib64/
ln -sf libstdc++.so.6.0.18 libstdc++.so.6
3、python里import tensorflow时报
“ImportError: /usr/local/python27/lib/python2.7/site-packages/tensorflow/python/_pywrap_tensorflow_internal.so: undefined symbol: PyUnicodeUCS4_FromString”
如果自己单独升级了python,或者有多个版本的python时,便有可能出现此问题.
问题表象为:报错:undefined symbol: PyUnicodeUCS2_AsUTF8String或者undefined symbol: PyUnicodeUCS4_AsUTF8String.
根本原因时python和某个你用的库编译时指定的UCS编码方式不对.
编译python时,可以通过指定--enable-unicode[=ucs[24]]来选择使用UCS2或者UCS4.
如果你的错误是undefined symbol: PyUnicodeUCS2_AsUTF8String,说明你的python编译时使用的是UCS4,反之依然.
解决方案两个:1,重新编译python,2,重新编译库.
选择一般是重新编译库.
我这重新编译python,因为报错是PyUnicodeUCS4_FromString,说明tensorflow是用U
4000
CS4编译的,而python是UCS2编译的:
重新编译时设置unicode为ucs4
./configure --prefix=/usr/local/python27 --enable-unicode=ucs4
python2.7.11默认是使用UCS2.
参考:
http://blog.csdn.net/taolinke/article/details/50472451 http://blog.csdn.net/zhangweijiqn/article/details/53199553
1、python里import tensorflow时报 “ImportError: /lib64/libc.so.6: version `GLIBC_2.17' not found (required by /usr/local/lib/python2.7/site-packages/tensorflow/python/_pywrap_tensorflow.so)”
主要是glibc的版本太低,默认的CentOS 6.5 glibc版本最高为2.12,
执行: strings /lib64/libc.so.6|grep GLIBC 查看目前系统支持的glibc的版本
[root@zhx-tserver2 build-2.17]# 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_PRIVATE
tensorflow需要glibc-2.17,需要升级glibc
1)下载glibc2.17:
wget http://ftp.gnu.org/gnu/glibc/glibc-2.17.tar.gz
2)解压:
tar -xzf glibc-2.17.tar.gz
3)创建build目录:
mkdir build
4)进入build目录编译glibc:
cd build
../glibc-2.17/configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin
make -j4
make install
注:如果执行configure的时候报configure: error: support for --no-whole-archive is needed,则把configure命令改成
../glibc-2.17/configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include
5)查看GLIBC版本
执行 strings /lib64/libc.so.6|grep GLIBC 查看版本已经支持GLIBC_2.17
[root@zhx-tserver2 build-2.17]# 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
2、python里import tensorflow时报“ImportError: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.18' not found (required by /opt/jmr/anaconda2/lib/python2.7/site-packages/tensorflow/python/_pywrap_tensorflow.so)”
GLIBCXX的版本太低,也需要更新,拷贝一个libstdc++.so.6.0.18到/usr/lib64/目录,做个软连接即可
cp libstdc++.so.6.0.18 /usr/lib64/
cd /usr/lib64/
ln -sf libstdc++.so.6.0.18 libstdc++.so.6
3、python里import tensorflow时报
“ImportError: /usr/local/python27/lib/python2.7/site-packages/tensorflow/python/_pywrap_tensorflow_internal.so: undefined symbol: PyUnicodeUCS4_FromString”
如果自己单独升级了python,或者有多个版本的python时,便有可能出现此问题.
问题表象为:报错:undefined symbol: PyUnicodeUCS2_AsUTF8String或者undefined symbol: PyUnicodeUCS4_AsUTF8String.
根本原因时python和某个你用的库编译时指定的UCS编码方式不对.
编译python时,可以通过指定--enable-unicode[=ucs[24]]来选择使用UCS2或者UCS4.
如果你的错误是undefined symbol: PyUnicodeUCS2_AsUTF8String,说明你的python编译时使用的是UCS4,反之依然.
解决方案两个:1,重新编译python,2,重新编译库.
选择一般是重新编译库.
我这重新编译python,因为报错是PyUnicodeUCS4_FromString,说明tensorflow是用U
4000
CS4编译的,而python是UCS2编译的:
重新编译时设置unicode为ucs4
./configure --prefix=/usr/local/python27 --enable-unicode=ucs4
python2.7.11默认是使用UCS2.
参考:
http://blog.csdn.net/taolinke/article/details/50472451 http://blog.csdn.net/zhangweijiqn/article/details/53199553
相关文章推荐
- centos 6.x 上 安装tensorflow 1.3 的一些问题总结
- Centos7.2安装tomcat+Myeclipse(遇到的一些问题与总结)+web项目实战
- VMware10 安装centos一些问题总结
- 安装linux遇到的一些问题总结
- U盘安装CentOS要注意的一些问题
- VMware workstation 10 安装 Centos 6.5 i386 的一些问题
- CoreSeek 的 安装 配置 及 遇到的一些列问题总结
- 在Linux中Oracle安装成功后,首次启动使用时,会出现的一些问题总结和解决办法
- 回顾总结64位CentOs下安装QT遇到的问题和解决方法
- 安装新字体后,centos 6.x chrome收藏夹,标签中文乱码问题解决
- centos上编译安装gnuplot问题总结
- RH+Oracle安装过程中碰到的一些值得总结的问题
- 关于VMware6.5下Ubuntu9.04安装VMware tools的一些问题总结
- WIN7系统安装 CENTOS 7 时发生一些问题
- Centos下安装chrome以及引发地进程调度的一些问题
- 在Linux中Oracle安装成功后,首次启动使用时,会出现的一些问题总结和解决办法
- 在vmware workstation7上安装centos5.5的一些问题
- CentOS 5.5 安装 Oracle 10gR2 遇到的一些问题
- 回顾总结64位CentOs下安装QT遇到的问题和解决方法
- CentOS下安装Mysql出现的问题总结