WSL2中通过.yaml文件创建conda环境出现JSONDecodeError如何解决?
报错原因
这个json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)报错是conda在准备安装事务阶段,读取本地缓存的conda包元数据JSON文件时,目标文件为空/内容损坏无法解析导致的,常见触发原因包括:
- conda本地包缓存损坏,此前下载的包元数据写入不完整
- 你使用的conda 4.10.3版本过老,对conda-forge源的新版元数据格式兼容性不足
- WSL2环境下文件系统异常,包括跨Windows/mnt目录操作权限问题、文件缓存异常
可行解决方案
按照优先级依次尝试:
- 清理全部conda损坏缓存,执行命令:
conda clean -a
清理完成后重新执行原安装命令即可。 - 升级base环境的conda到最新稳定版,解决旧版本兼容bug:
conda update -n base conda
升级完成后再重新创建环境。 - 临时强制指定通道优先级,覆盖默认的官方源优先级,适配yaml的通道配置:
conda env create -f devtools/conda-envs/ael-test.yaml --override-channels -c conda-forge -c pytorch -c defaults - 拆分安装流程,避免pip依赖和conda依赖同时安装触发异常:
先删除yaml文件中pip及以下两行的内容,先运行原命令创建基础环境;环境创建完成后执行conda activate <环境名>激活环境,再手动执行pip命令安装torchani和对应git仓库的依赖即可。 - 排查WSL2文件系统问题:
不要将yaml文件放在/mnt/c/开头的Windows挂载目录下,移动到WSL2的本地Linux用户目录(如/home/你的用户名/)下再执行安装命令;同时检查conda缓存目录权限,确保~/.conda/pkgs目录为当前用户所有,无读写权限限制。
内容的提问来源于stack exchange,提问作者Gheorghe Rotaru
相关产品推荐
相关产品推荐

