OSError: libcudart.so.11.0: cannot open shared object file: No such file or directory

文章讲述了在Ubuntu22.04环境中,使用Python3.9和Torch1.11.0时遇到的OSError,由于torch与torchaudio库版本不匹配。作者详细描述了错误排查过程,最终发现是由于torch、pytorch_lightning和torchmetrics版本问题,并给出了升级这些库到对应版本的解决方案,成功解决了问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

完美解决:OSError: libcudart.so.11.0: cannot open shared object file: No such file or directory

OSError: libcudart.so.11.0: cannot open shared object file: No such file or directory

环境

  • Ubuntu 22.04 LTS
  • python 3.9
  • torch 1.11.0

错误详情

运行 python train.py 报错如下:

  File "/data/miniconda3/envs/py39/lib/python3.9/site-packages/lightning_utilities/core/imports.py", line 77, in compare_version
    pkg = importlib.import_module(package)
  File "/data/miniconda3/envs/py39/lib/python3.9/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "/data/miniconda3/envs/py39/lib/python3.9/site-packages/torchaudio/__init__.py", line 1, in <module>
    from torchaudio import (  # noqa: F401
  File "/data/miniconda3/envs/py39/lib/python3.9/site-packages/torchaudio/_extension.py", line 135, in <module>
    _init_extension()
  File "/data/miniconda3/envs/py39/lib/python3.9/site-packages/torchaudio/_extension.py", line 105, in _init_extension
    _load_lib("libtorchaudio")
  File "/data/miniconda3/envs/py39/lib/python3.9/site-packages/torchaudio/_extension.py", line 52, in _load_lib
    torch.ops.load_library(path)
  File "/data/miniconda3/envs/py39/lib/python3.9/site-packages/torch/_ops.py", line 220, in load_library
    ctypes.CDLL(path)
  File "/data/miniconda3/envs/py39/lib/python3.9/ctypes/__init__.py", line 382, in __init__
    self._handle = _dlopen(self._name, mode)
OSError: libcudart.so.11.0: cannot open shared object file: No such file or directory

错误原因

torch 的某个库与 torch 版本不兼容,上面的提示是 torchaudio 异常

错误排查

先执行:

pip list|grep torch

输出:

pytorch-lightning        1.7.6
torch                    1.11.0
torchaudio               0.13.0
torchmetrics             1.2.1
torchvision              0.12.0

一个一个的排除

$ python
import torchaudio
import torchmetrics
import torchmetrics

import torchaudio 得到错误:

  File "/data/miniconda3/envs/py39/lib/python3.9/site-packages/torchaudio/__init__.py", line 1, in <module>
    from torchaudio import (  # noqa: F401
  File "/data/miniconda3/envs/py39/lib/python3.9/site-packages/torchaudio/_extension.py", line 135, in <module>
    _init_extension()
  File "/data/miniconda3/envs/py39/lib/python3.9/site-packages/torchaudio/_extension.py", line 105, in _init_extension
    _load_lib("libtorchaudio")
  File "/data/miniconda3/envs/py39/lib/python3.9/site-packages/torchaudio/_extension.py", line 52, in _load_lib
    torch.ops.load_library(path)
  File "/data/miniconda3/envs/py39/lib/python3.9/site-packages/torch/_ops.py", line 220, in load_library
    ctypes.CDLL(path)
  File "/data/miniconda3/envs/py39/lib/python3.9/ctypes/__init__.py", line 382, in __init__
    self._handle = _dlopen(self._name, mode)
OSError: libcudart.so.11.0: cannot open shared object file: No such file or directory

import pytorch_lightning 得到错误:

  File "/data/miniconda3/envs/py39/lib/python3.9/site-packages/torchaudio/__init__.py", line 1, in <module>
    from torchaudio import (  # noqa: F401
  File "/data/miniconda3/envs/py39/lib/python3.9/site-packages/torchaudio/_extension.py", line 135, in <module>
    _init_extension()
  File "/data/miniconda3/envs/py39/lib/python3.9/site-packages/torchaudio/_extension.py", line 105, in _init_extension
    _load_lib("libtorchaudio")
  File "/data/miniconda3/envs/py39/lib/python3.9/site-packages/torchaudio/_extension.py", line 52, in _load_lib
    torch.ops.load_library(path)
  File "/data/miniconda3/envs/py39/lib/python3.9/site-packages/torch/_ops.py", line 220, in load_library
    ctypes.CDLL(path)
  File "/data/miniconda3/envs/py39/lib/python3.9/ctypes/__init__.py", line 382, in __init__
    self._handle = _dlopen(self._name, mode)
OSError: libcudart.so.11.0: cannot open shared object file: No such file or directory

可知 torchaudio、pytorch_lightning、torchmetrics 这几个包与 torch 版本不兼容

torch                    1.11.0

对应版本:
pytorch_lightning        2.0
torchaudio               0.11.0
torchmetrics             0.11.1

解决方法

pip安装

pip install pytorch_lightning==2.0 torchaudio==0.11.0  torchmetrics==0.11.1    -i https://mirrors.aliyun.com/pypi/simple/

验证

python train.py

正常运行,完美解决!!

参考

https://github.com/pytorch/vision#installation
https://pytorch.org/audio/main/installation.html#compatibility-matrix
https://github.com/pytorch/text
https://pytorch.org/get-started/previous-versions/

### 解决 Deepspeed 导入时找不到 `libcudart.so.11.0` 的问题 当遇到错误提示 `ImportError: libcudart.so.11.0: cannot open shared object file: No such file or directory` 时,这通常意味着系统无法找到 CUDA 运行库文件。此问题可能由多种原因引起。 #### 环境配置不一致 如果先前安装过不同版本的 CUDA 并进行了卸载操作,则残留设置可能导致当前环境未能正确识别新的 CUDA 安装路径[^3]。建议彻底清理旧版 CUDA 配置并重新配置新版 CUDA 路径至 `.bashrc` 或者相应的 shell profile 文件中: ```shell export PATH=/usr/local/cuda-11.0/bin${PATH:+:${PATH}} export LD_LIBRARY_PATH=/usr/local/cuda-11.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}} source ~/.bashrc ``` #### 库文件缺失或损坏 确认 `/usr/local/cuda-11.0/lib64/` 下是否存在名为 `libcudart.so.11.0` 的链接指向实际存在的共享对象文件。如果没有,请尝试修复或者重装 CUDA 工具包来恢复丢失的组件。 #### 动态加载器缓存未更新 有时即使设置了正确的环境变量,动态加载器也可能因为其内部缓存而继续查找旧位置中的库文件。可以运行命令刷新该缓存: ```shell sudo ldconfig ``` #### Python 包依赖冲突 对于使用 PyTorch 和 DeepSpeed 的情况来说,确保所使用的这些框架及其扩展模块均基于相同版本的 CUDA 构建非常重要。可以通过指定确切版本号的方式安装兼容性强的组合,例如通过 Poetry 来管理项目依赖关系[^4]: ```toml [tool.poetry.dependencies] torch = {version = "2.0.1", source = "pytorch"} deepspeed = "^0.5.9" ``` 之后执行如下指令完成安装过程: ```shell poetry install ``` 以上措施有助于解决由于 CUDA 版本差异带来的各种潜在问题,并使得应用程序能够顺利访问所需的 GPU 加速功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

szZack

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值