从零搞定 CUDA 环境:为什么import torch总卡在libcudart.so上?
你是不是也经历过这样的瞬间:
刚 pip install 好 PyTorch,满怀期待地敲下python -c "import torch; print(torch.cuda.is_available())",
结果——
ImportError: libcudart.so.11.3: cannot open shared object file: No such file不是没装 CUDA,不是驱动坏了,也不是显卡不存在……就是Python 死活找不到那个关键的.so文件。
别急着重装系统、删 conda 环境、或者怀疑人生。这个问题背后没有玄学,只有三个清晰可验证的技术动作:库在哪、链接器知不知道、以及它敢不敢用。
下面,我们就从一次真实的调试现场出发,把整个链路掰开揉碎,不讲概念,只讲你打开终端后该敲什么、看什么、改什么。
先确认一件事:CUDA Toolkit 真的装对了吗?
很多人的“环境失败”,其实卡在第一步:你以为装了 CUDA 11.3,但nvcc报的是 11.0,或者压根没进$PATH。
执行这三行,是所有后续操作的前提:
# 1. 查看 nvcc 版本(必须匹配 PyTorch 的 +cuXXX 后缀) nvcc --version # 2. 确认 CUDA_HOME 指向正确的安装目录 echo $CUDA_HOME ls -l $CUDA_HOME # 应该指向 /usr/local/cuda-11.3 这类路径 # 3. 直接找 libcudart.so —— 不靠猜测,靠文件系统 find /usr/local/cuda* -name "libcudart.so*" 2>/dev/null | head -5✅ 如果nvcc --version输出release 11.3,且find找到了/usr/local/cuda-11.3/lib64/libcudart.so.11.3,说明 Toolkit 安装完整。
❌ 如果find什么都没返回,或返回的是libcudart.so.10.2,那你的 PyTorch(比如torch==1.10.0+cu113)根本