Conda安装pytorch和cuda出现问题的解决记录

pytorch已经安装却显示cuda不可用

问题表现:

pytorch已经安装,代码能够正常运行,但是不能识别到GPU,Cuda显示不可用。

系统:centos

显卡:TeslaV100

问题记录:

目的:为了运行一个仓库neuralhydrology的代码,按照其教程配置环境。

问题原因:

环境由仓库提供的yml文件决定,我认为这是出现问题的部分原因。

复制代码
conda env create -f environment.yml

目前根据配置文件创建环境首先遇到的就是下载慢,pip还超时了,不过很轻松就用换源解决了。最后说。这一步换源操作也是问题原因的一部分。

如何发现:

其实是执行代码的时候,居然走到了cpuonly的分支。

如何解决:

执行以下命令判断你是否和我遇到了同一种情况:

下面这一条如果显示有pytorchcuda说明你是有cuda包的,可以继续往下看,或者显示cudatoolkit也是。否则你就要考虑是不是没装cuda包啊。可以按照后面的方案操作。

复制代码
 conda list | grep cuda

下面这一条用来判断你的pytorch是不是正确,如果显示pytorch后面的build列有cpu。。。那就是和我一样啦。

复制代码
conda list | grep torch

conda list输出包名版本build和channel ,如果build那一列不对,就是安装错版本啦。

我这里就是因为换源默认从配置文件里读取pytorch安装的是cpu版本,所以即使已经安装了cuda也不能识别和使用GPU。

那么如果你和我一样,下一步就这样操作:

这一步判断 你的GPU的驱动最高支持什么版本的CUDA,一般只要你的cuda不超过这个数字就行了。

复制代码
nvidia-smi | grep "CUDA Version"  # 输出应≥11.8

如果你的代码有要求,并且要求的版本不高于你gpu驱动能运行的版本 ,就按照那个版本就好啦,否则你可能需要更新驱动或者更换pytorch和cuda的版本。

然后就要卸载旧的pytorch和cuda包:

复制代码
conda uninstall pytorch torchvision torchaudio libtorch pytorch-cuda

如果提示没有哪些包可卸载,就卸载已有的就行了。

我的话是卸载这两个:

复制代码
conda uninstall pytorch pytorch-cuda

卸载完就要重新安装啦:

复制代码
conda install pytorch  pytorch-cuda=11.8 -c pytorch -c nvidia

-c可以指定从哪个通道下载。11.8是我的cuda版本,你可以选择自己的版本。

最后得到新的pytorch版本:

妙啊,到这就能够运行了。

其他解决?

如果你和我不一样,请尝试排查以下内容:

1,是否安装pytorch和cuda?

2,cuda版本是否超过GPU允许的版本?

3,你是否在不同包管理器下载的cuda和pytorch?

4,pytorch和cuda版本是否匹配?

如果你犯了一些错误或者没找到错误,下面的建议可以参考:

请抛弃当前的环境配置文件,自己手动安装各可能有问题的组件,根据需要一个个添加或者找已经正常运行的朋友借一个环境配置文件(见最后)。

请尝试使用pip安装pytorch和cuda,或者指定通道的情况下用conda安装。

请新建一个环境并尝试用conda或者pip安装cuda和pytorch而不是各自安装部分依赖。

最后请确保你进入了正确的conda环境并设置为你的脚本的执行环境。

一些记录:

cudatoolkit在我的依赖中并不存在,但是你的环境中可能使用这个作为运行环境。乃至于下面这种也是正常的。

一个不谨慎的检查脚本:

复制代码
echo "=== NVIDIA驱动检查 ==="
nvidia-smi || echo "! 驱动未安装"

echo "\n=== CUDA环境检查 ==="
which nvcc &>/dev/null && nvcc --version || echo "! CUDA未安装"

echo "\n=== PyTorch检查 ==="
python -c "import torch; print('\nPyTorch版本:', torch.__version__, '\nCUDA可用:', torch.cuda.is_available())"

把他写入一个sh文件然后bash它就好了。

当然了第二部提示你cuda没安装可能是你和我一样是pytorch-cuda的原因。实在想要一个就安装cuda-nvcc就好了。

conda下载慢或者pip超时的情况

很简单就是进行换源。

conda添加清华源:

复制代码
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch

同时pip也要换源

我这里全局换源的原因是不想手动一个个操作,还是想直接用配置文件生成环境。

复制代码
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

如果有条件,可一个个使用临时换源:conda其实类似的也可以。

复制代码
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple package_name

如何避免再来一次?

保存你的环境依赖吧!

进入你的虚拟环境:

复制代码
conda env export > myenvir.yml

你的环境被保存了,下次只要:

复制代码
conda env create -f myenvir.yml

就搞定了。

相关推荐
会写代码的柯基犬21 小时前
DeepSeek vs Kimi vs Qwen —— AI 生成俄罗斯方块代码效果横评
人工智能·llm
Mintopia1 天前
OpenClaw 是什么?为什么节后热度如此之高?
人工智能
爱可生开源社区1 天前
DBA 的未来?八位行业先锋的年度圆桌讨论
人工智能·dba
叁两1 天前
用opencode打造全自动公众号写作流水线,AI 代笔太香了!
前端·人工智能·agent
敏编程1 天前
一天一个Python库:jsonschema - JSON 数据验证利器
python
前端付豪1 天前
LangChain记忆:通过Memory记住上次的对话细节
人工智能·python·langchain
strayCat232551 天前
Clawdbot 源码解读 7: 扩展机制
人工智能·开源
王鑫星1 天前
SWE-bench 首次突破 80%:Claude Opus 4.5 发布,Anthropic 的野心不止于写代码
人工智能
lnix1 天前
当“大龙虾”养在本地:我们离“反SaaS”的AI未来还有多远?
人工智能·aigc