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,如果想要升級,必須自己下載源碼,編譯升級,但是從官網(wǎng)上下載的安裝包,需要一些其他的關(guān)聯(lián)包,安裝麻煩,且不利于其他機器的部署。
rpm安裝
從網(wǎng)上下載glibc-2.15.rpm,以及其他相關(guān)的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安裝時,需要忽略包的關(guān)聯(lián)性,否則無法正常安裝。
rpm -Uvh --nodeps *2.17-55.el6.x86_64.rpm --force
安裝好后,ldconfig
檢查ll /lib64/libc.*
此時可以看到glibc.so.6 已經(jīng)指向了2.17.so
注意
在安裝glibc時,一定注意備份,因為一旦出錯,整個系統(tǒng)就會掛掉。
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時,便有可能出現(xiàn)此問題.
問題表象為:報錯: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編譯的:
重新編譯時設(shè)置unicode為ucs4
./configure --prefix=/usr/local/python27 --enable-unicode=ucs4
python2.7.11默認是使用UCS2.
3. ImportError: No module named Tkinter