如何在Centos6中部署PyTorch?

How to deploy PyTorch in Centos6?

最近想运行一些centos6上的pytorch代码。但是,无论我执行“pip install torch”还是“conda install torch”,提示都显示:

>>>  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 库。我只是想知道如何在不切换到新的 linux 发行版的情况下在 centos6 上 运行 pytorch。

PS:我需要在产品环境上部署这样的python环境,OS是centos6.

这是一个艰难的过程。您可以降级到非常旧的 torch 版本(我记得 v0.3.1 在 Centos 6.5 上是 运行ning ok ),或者升级到 Centos 7。拥有​​ 2 个版本的 glibc 是地狱。

如果您真的需要 Centos 6 来使用最新版本的 torch,请尝试将 glibc 安装到非标准位置并从源代码编译 Python 和 pytorch。

更新

您无法替换系统的 glibc,但您可以将其安装在其他地方,例如 /opt/myglibc。 Pytorch 从 v0.4.1 开始停止支持 Centos 6。因此,您必须使用 gcc v5+ 构建它并将其链接到您的 glibc 版本。这是instructions。但是由于您不直接调用 pytorch,因此还需要构建 Python。然后,您可以通过为您的程序专门设置 glibc 路径来 运行 您的程序。

LD_LIBRARY_PATH=/opt/myglibc python my_program.py