非sudo权限下如何在Miniconda中安装GLIBCXX_3.4.29?
解决无sudo权限下pyg-lib/torch-sparse依赖GLIBC/GLIBCXX缺失问题
方案一:用conda安装兼容预编译包(最简便)
Miniconda的conda-forge源提供了适配低版本GLIBC的pyg相关预编译包,完全不用折腾系统库:
- 创建并激活独立环境(避免污染现有项目环境):
conda create -n pyg_env python=3.8 # 替换为你项目使用的Python版本 conda activate pyg_env - 安装匹配版本的PyTorch(示例为CPU版,若需CUDA请替换为对应命令):
conda install pytorch torchvision torchaudio cpuonly -c pytorch - 安装pyg-lib和torch-sparse:
conda install pyg-lib torch-sparse -c pyg -c conda-forge
方案二:利用本地编译的GLIBC-2.29运行程序
如果你已经在~/local/glibc-2.29完成GLIBC-2.29的编译安装,可通过指定动态链接库路径让Python加载本地GLIBC:
- 临时生效(每次运行脚本前执行):
LD_PRELOAD=~/local/glibc-2.29/lib/libc.so.6 python your_project_script.py - 永久绑定到conda环境(仅激活环境时生效):
- 创建环境激活脚本:
mkdir -p $CONDA_PREFIX/etc/conda/activate.d echo 'export LD_PRELOAD=~/local/glibc-2.29/lib/libc.so.6' > $CONDA_PREFIX/etc/conda/activate.d/set_glibc.sh - 创建环境退出脚本恢复系统默认:
mkdir -p $CONDA_PREFIX/etc/conda/deactivate.d echo 'unset LD_PRELOAD' > $CONDA_PREFIX/etc/conda/deactivate.d/unset_glibc.sh
- 创建环境激活脚本:
方案三:从源码编译pyg-lib/torch-sparse(适配系统GLIBC)
若前两种方案失效,可手动编译源码,让生成的库适配系统现有GLIBC版本:
- 激活conda环境,安装编译依赖:
conda install cmake ninja setuptools scipy - 编译安装pyg-lib:
git clone https://github.com/pyg-team/pyg-lib.git cd pyg-lib python setup.py install --user - 编译安装torch-sparse:
git clone https://github.com/pyg-team/torch-sparse.git cd torch-sparse python setup.py install --user
注意事项
- 优先尝试方案一,conda预编译包是最省心的解决方案,无需手动处理GLIBC依赖。
- 方案二中的
LD_PRELOAD可能影响部分系统命令,建议仅绑定到需要使用pyg库的conda环境。 - 编译源码时确保conda环境的cmake版本≥3.18,否则可能出现编译错误。
内容的提问来源于stack exchange,提问作者Mridul Gupta
相关产品推荐
相关产品推荐

