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 升级
GLIBC 升级
安装包,自己编译
由于centos6.5以下版本glibc最高为2.12,如果想要升级,必须自己下载源码,编译升级,但是从官网上下载的安装包,需要一些其他的关联包,安装麻烦,且不利于其他机器的部署。
rpm安装
从网上下载glibc-2.15.rpm,以及其他相关的glib安装包,
glibc-common-2.15-60.el6.x86_64.rpm
glibc-devel-2.15-60.el6.x86_64.rpm
glibc-2.15-60.el6.x86_64.rpm
glibc-headers-2.17-60.el6.x86_64.rpm
这个包能找到就下,找不到就不用安装了。
[下载好放到了nb01-sys-gpu-kongming13.nb01.baidu.com:/root/softwares/glibc217.tar]
nscd-2.12-1.192.el6.x86_64.rpm
在使用rpm安装时,需要忽略包的关联性,否则无法正常安装。
rpm -Uvh --nodeps *2.17-55.el6.x86_64.rpm --force
安装好后,ldconfig
检查ll /lib64/libc.*
此时可以看到glibc.so.6 已经指向了2.17.so
注意
在安装glibc时,一定注意备份,因为一旦出错,整个系统就会挂掉。
libstdc++.so.6
ImportError: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.19' not found
Kongming 机器:
export LD_PRELOAD=/home/opt/gcc-4.8.2.bpkg-r2/gcc-4.8.2.bpkg-r2/lib64/libstdc++.so.6
2. 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是用UCS4编译的,而python是UCS2编译的:
重新编译时设置unicode为ucs4
./configure --prefix=/usr/local/python27 --enable-unicode=ucs4
python2.7.11默认是使用UCS2.
3. ImportError: No module named Tkinter