创建Conda环境时遇JSONDecodeError导入错误的解决求助
错误排查与解决:Conda创建环境时的JSONDecodeError及pip依赖问题
原因分析
- simplejson版本不兼容:
JSONDecodeError是Python 3.5+标准库json模块的内置异常,部分旧版simplejson未将该异常导出到模块顶层,当环境中安装这类版本时会触发导入错误。 - pip依赖损坏/冲突:
pip._vendor.requests缺失通常是pip自身安装不完整、被篡改,或是系统全局pip与conda环境内pip冲突,导致依赖链断裂。 - conda缓存残留:Miniconda/Anaconda的缓存目录可能留存旧版
simplejson或损坏的pip包,重装Anaconda后仍会优先调用缓存,导致问题重复。 - environment.yml配置问题:yml文件若指定过低版本的
simplejson,或依赖包间接引入不兼容版本,也会引发错误。
解决方法
1. 清理conda缓存后重建环境
- 清理所有conda缓存:
conda clean --all -y - 创建空环境并激活:
conda create --name env1 python=3.x # 替换为yml中指定的Python版本 conda activate env1 - 卸载可能存在的问题包:
pip uninstall -y simplejson conda uninstall -y simplejson - 从yml更新环境依赖:
conda env update --name env1 -f environment.yml
2. 强制修复pip依赖
- 在激活的环境中重新安装pip:
python -m ensurepip --upgrade python -m pip install --upgrade --force-reinstall pip - 验证修复结果:
pip --version python -c "import pip._vendor.requests" # 无报错则修复成功
3. 约束simplejson版本(修改yml)
打开environment.yml,添加simplejson的版本约束:
dependencies: - python=3.8 # 替换为你的Python版本 - simplejson>=3.17.0 # 该版本及以上支持导出JSONDecodeError # 其他依赖项...
重新执行创建命令:
conda env create --name env1 -f environment.yml
4. 临时禁用pip安装(应急方案)
若主要依赖为conda包,可先跳过pip安装:
conda env create --name env1 -f environment.yml --no-pip
激活环境后手动安装需pip的包:
conda activate env1 pip install [目标包名]
内容的提问来源于stack exchange,提问作者heyula
相关产品推荐
相关产品推荐

