为何torch.cuda.is_available()在终端返回True,在Jupyter Notebook返回False?
解决Jupyter Notebook中torch.cuda.is_available()返回False的问题
明明终端和Notebook显示用的是同一个Python环境,但终端里CUDA可用、Notebook里却不行,试试下面这些办法:
1. 确认Jupyter内核与目标环境绑定
Jupyter的内核可能没正确关联到你的test conda环境,哪怕!which python显示路径一致也可能出现这种情况:
- 激活你的conda环境:
conda activate test - 在该环境下安装ipykernel:
conda install ipykernel - 将环境添加为Jupyter内核:
python -m ipykernel install --user --name test --display-name "Python (test)" - 重启Jupyter Notebook,在右上角切换内核为
Python (test),再运行torch.cuda.is_available()测试。
2. 检查环境变量差异
终端里的CUDA相关环境变量可能没传递到Jupyter进程中:
- 在终端运行
echo $LD_LIBRARY_PATH,记下输出的路径(通常包含CUDA的lib目录,比如/usr/local/cuda/lib64)。 - 在Jupyter Notebook里执行:
import os print(os.environ.get('LD_LIBRARY_PATH')) - 如果路径不一致,在Notebook开头、
import torch之前手动设置环境变量:import os os.environ['LD_LIBRARY_PATH'] = '/usr/local/cuda/lib64:/你的其他路径' # 替换成终端里的实际路径 import torch print(torch.cuda.is_available())
3. 验证Torch与CUDA的版本兼容性
Notebook中的Torch可能未正确关联CUDA,在Notebook里运行:
print(torch.__version__) print(torch.version.cuda)
对比终端里的输出,确保版本完全一致。如果不一致,说明Notebook调用的是其他版本的Torch,重新在test环境安装对应CUDA版本的Torch:
conda activate test pip uninstall torch pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118 # 替换为你的CUDA对应的版本号
4. 重启Jupyter服务
Jupyter进程可能缓存了旧的环境信息,完全关闭所有Jupyter相关进程后重新启动,再进行测试。
内容的提问来源于stack exchange,提问作者user572780
相关产品推荐
相关产品推荐

