在linux上使用conda环境时突然有一天莫名其妙的出现了ImportError: dlopen: cannot load any more object with static TLS,查看一些解决办法,例如说调整sklearn引入位置,的确能在一定程度上解决该问题,但是不能从根本上解决,如果你要是使用一些github开源代码,时不时还会出现,让人烦不胜烦。为了彻底解决该问题,查看了很多方案,下面这个方法能彻底根除。
使用命令:
ll /usr/lib64/libc.so.6.
查看的软连接,如果是:
/usr/lib64/libc.so.6 -> libc-2.18.so
那就会出现这种问题,具体看csdn里有说明,但是没理解。 你只要把软连接修改为这个样子就没有问题了:
/usr/lib64/libc.so.6 -> libc-2.17.so
具体怎么按转glibc-2.17,网上有很多教程这里就不细说。
特别注意:
以后在安装其他类库,或者github上有:
pip install -r requirement.txt
or
conda create - f xxx.yaml
这个时候要特别注意,因为一些依赖包的原因会升级glibc,如果不小心升级到了glibc-2.18那就会出现上面的问题。
如果误删了libc.so.6. 的恢复办法