You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

非root用户在conda环境pip安装项目遇libcufft.so.10缺失错误求助

问题:非root用户在conda环境安装MoE-LLaVA时出现libcufft.so.10找不到的权限类错误

环境信息

  • Ubuntu 22.04 AMD64
  • NVIDIA驱动版本525.147.05,CUDA版本12.0
  • 普通用户~/.bashrc已配置以下环境变量:
export CUDA_HOME=/usr/local/cuda
export CUDACXX=/usr/local/cuda/bin/nvcc
export LIBRARY_PATH="${CUDA_HOME}/lib64"
export C_INCLUDE_PATH="${CUDA_HOME}/include"
export PATH=/usr/local/cuda/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

问题详情

以普通用户身份安装MoE-LLaVA时,触发如下错误:

Traceback (most recent call last):
  File "/home/me/.local/lib/python3.10/site-packages/torch/__init__.py", line 168, in _load_global_deps
    ctypes.CDLL(lib_path, mode=ctypes.RTLD_GLOBAL)
  File "/usr/lib/python3.10/ctypes/__init__.py", line 374, in __init__
    self._handle = _dlopen(self._name, mode)
OSError: libcufft.so.10: cannot open shared object file: No such file or directory

切换到root用户后,创建新conda环境执行pip install .可成功安装并正常运行程序,但切回普通用户后,原本正常的Python命令也出现相同错误。尝试sudo chmod 777 -R /usr/local/cuda无效,最终只能卸载重装CUDA和驱动后普通用户才能正常运行。推测核心为权限或环境变量传递问题,而非CUDA版本不匹配。

需求

实现任意conda环境下,非root用户执行pip install ***时不出现上述依赖库找不到的错误。


解决方案

1. 修正CUDA目录的权限与归属

CUDA默认安装目录归属为root,普通用户需具备读取和执行权限(无需过度开放777):

  • 查看CUDA软链接指向的实际版本目录:ls -l /usr/local/cuda
  • 修正目录权限与归属(替换cuda-12.0为你的实际版本目录):
    sudo chown -R root:users /usr/local/cuda-12.0
    sudo chmod -R 755 /usr/local/cuda-12.0
    sudo chown root:users /usr/local/cuda
    sudo chmod 755 /usr/local/cuda
    

2. 让conda环境继承系统CUDA环境变量

conda默认会隔离系统环境变量,需配置保留CUDA相关变量:

  • 编辑~/.condarc,添加以下内容:
    preserve_environment_variables:
      - CUDA_HOME
      - CUDACXX
      - LIBRARY_PATH
      - C_INCLUDE_PATH
      - LD_LIBRARY_PATH
    
    这样所有conda环境都会自动继承这些系统级路径变量,避免库查找失败。

3. 给单个conda环境配置自动加载CUDA路径(可选)

若全局配置无效,可给指定conda环境添加自动激活脚本:

  • 创建激活脚本目录:
    mkdir -p ~/miniconda3/envs/your_env/etc/conda/activate.d
    
  • 写入环境变量配置:
    echo -e 'export CUDA_HOME=/usr/local/cuda\nexport LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH' > ~/miniconda3/envs/your_env/etc/conda/activate.d/env_vars.sh
    
    替换your_env为目标conda环境名称,激活环境时会自动加载路径。

4. 验证torch与CUDA版本兼容性

确保当前conda环境的torch版本适配CUDA 12.0,执行以下命令安装兼容版本:

pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121

注:cu121版本的torch完全兼容CUDA 12.0。


内容的提问来源于stack exchange,提问作者Vincent

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 03:48:38