最近,我想在centos6上运行一些电筒代码。但是,无论我执行"pip安装火炬“还是"conda安装火炬”,提示都显示:
>>> import torch
Traceback (most recent call last):
File "", line 1, in
File "XXX/anaconda3/envs/XXX/lib/python3.6/site-packages/torch/init.py", line 56, in
from torch._C import *
ImportError: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by XXX/anaconda3/envs/XXX/lib/python3.6/site-packages/torch/_C.cpython-36m-x86_64-linux-gnu.so)
My enviroment:
OS: CentOS release 6.7
How you installed PyTorch (conda, pip, source): pip & conda
Python version: 3.6.5我尝试过手工编译glibc-2.19,但是当我将库路径放入LD_LIBRARY_PATH时,我不能使用诸如"ls“、"make”等命令,并且出现了“段错误”。我还尝试将*.so复制到python虚拟环境下的lib目录中,难怪python出现了“段故障”。我理解很多组件依赖于特定的glibc库。我只是想知道如何才能在centos6上运行py手电筒,而无需切换到新的linux发行版。
PS:我需要在操作系统为centos6的产品环境上部署这样的python环境。
发布于 2021-08-08 12:31:45
这是个艰难的决定。您可以降级到非常老版本的torch (我记得在Centos 6.5上运行ok ),或者升级到Centos 7,拥有2版本的glibc就是地狱。
如果您确实需要Centos 6来使用最新版本的torch,请尝试将glibc安装到非标准位置,并从源代码编译Python和py手电。
更新
您不能替换系统的glibc,但是可以在其他地方安装它,比如/opt/myglibc。Pytorch从0.4.1版本起就停止支持Centos 6。因此,您必须使用gcc v5+构建它,并将其链接到您的glibc版本。这是使用说明。但是,由于您不直接调用Python,所以还需要构建Python。然后,您可以通过为您的程序设置glibc路径来运行程序。
LD_LIBRARY_PATH=/opt/myglibc python my_program.pyhttps://stackoverflow.com/questions/68699341
复制相似问题