- ImportError: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /root/anaconda3/envs/molopt/lib/python3.7/site-packages/rdkit/rdBase.so)
/lib64/libstdc++.so.6: version `GLIBCXX_3.4.21'下没有GLIBCXX_3.4.21这个版本,简而言之就是/lib64/libstdc++.so.6下的glibc版本太低了。
使用这条命令查看一下动态库中有哪些版本的glibc
strings /usr/lib64/libstdc++.so.6 | grep GLIBC
输出:可以发现,动态库中没有我们要的GLIBCXX_3.4.21。
由于anaconda中已经有了新版本glibc,所以复制anaconda中的glibc到/usr/lib64/中。
该命令会检索所有的libstdc++
find / -name "libstdc++.so*"
在这里你可以找到你anaconda环境下所用到的listdc++.so.6.0.29,保存这个路径。
但是这一步需要管理员权限,加个sudo
sudo cp /root/annaconda3/envs/molopt/lib/libstdc++.so.6.0.29 /usr/lib64/
ln -sf /lib64/libstdc++.so.6.0.29 /lib64/libstdc++.so.6
注意此处在 -s后面加了 f ,表示强制链接,否则可能会报这个错误。
然后再使用这条命令看一下,就显示了所需要的版本信息。
strings /usr/lib64/libstdc++.so.6 | grep GLIBC
OK!!!