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可能会把你之前已经给这个环境安装的包给清除了。慎用!!!!
6万+

被折叠的 条评论
为什么被折叠?



