ChecksumMismatchError: Conda detected a mismatch between the expected content

部署运行你感兴趣的模型镜像

1 问题描述

我在安装pytorch-2.6.0.dev20241112提示出现

ChecksumMismatchError: Conda detected a mismatch between the expected content and downloaded content                                                                                                                          

for url 'https://conda.anaconda.org/pytorch-nightly/linux-64/pytorch-2.6.0.dev20241112-py3.10_cuda12.4_cudnn9.1.0_0.tar.bz2'.                                                                                                 

  download saved to: /home/leo/miniconda3/pkgs/pytorch-2.6.0.dev20241112-py3.10_cuda12.4_cudnn9.1.0_0.tar.bz2                                                                                                                 

  expected sha256: 6cef905a895238e9d987a472b5c7eee73bf127acd7fb108471feb57705572b88                                                                                                                                           

  actual sha256: 83039335b3e45d26b256675a55e510a8ae1cf36ab2af7379e9844a986a2dae0d

由于我之前成功安装过一次这个环境,后来感觉环境配的太乱,删除之前的环境,打算重新配置一下,导致重新配的时候出现上述不匹配的问题。

2 解决方法

步骤一

首先我想到的是网络问题,因为我这次安装环境发现下包特别慢,怀疑校园网又给限制了,导致下载的过程断断续续,如果网络有波动,可能会导致下载中断从而产生Checksum错误,所以我更换使用了手机热点,或者为了保险起见你也可以加入下面设置

conda config --set remote_read_timeout_secs 1000.0

带来的效果也是非常显著的,几十个包,下载前两个都一卡一卡的,非常难熬,切换手机热点之后,不到5分钟除了上述Checksum包,其余都下载完毕。(网上资料显示,有的人在更换手机热点之后就能解决Checksum问题。)

步骤二

核心原因:因为我之前“下载成功过”后来又删除了环境,但 conda env remove 命令只会删除环境目录,不会删除下载的安装包缓存(pkgs)。当我重新运行命令时,Conda 检测到本地缓存目录 /home/leo/miniconda3/pkgs/ 下已经有了 pytorch-2.6.0...tar.bz2 这个文件,它就会优先尝试使用这个本地文件,而不是去网络下载。但是,Conda 在校验这个本地文件时发现它的哈希值(SHA256)和远程元数据不匹配(可能上次没下完,或者文件损坏了),于是报错。解决方法

方法一:手动删除损坏的缓存包(使用热点的情况下我用这个方法就成功了)

根据报错信息,损坏的文件就在硬盘里。直接删除它,强制 Conda 重新下载。

终端依次输入以下命令

rm /home/leo/miniconda3/pkgs/pytorch-2.6.0.dev20241112-py3.10_cuda12.4_cudnn9.1.0_0.tar.bz2
rm -rf /home/leo/miniconda3/pkgs/pytorch-2.6.0.dev20241112-py3.10_cuda12.4_cudnn9.1.0_0

注意替换为自己的报错路径

然后重新下载。

方法二:使用 Conda 自带的清理命令(我没使用这个方法)

使用 Conda 的清理命令清除所有未使用的包和缓存

conda clean --all

这个方法有风险,可以自行了解下clean的原理,如果你的环境是递归创建的,由于一个包导致环境没有创建完全,无法显示,即

conda env list

显示不出你创建的环境,那么clean可能会把你之前已经给这个环境安装的包给清除了。慎用!!!!

您可能感兴趣的与本文相关的镜像

PyTorch 2.5

PyTorch 2.5

PyTorch
Cuda

PyTorch 是一个开源的 Python 机器学习库,基于 Torch 库,底层由 C++ 实现,应用于人工智能领域,如计算机视觉和自然语言处理

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值