Conda安装指定包时检出无关包冲突,如何仅安装指定依赖?
Conda安装提示无关包冲突的解决方法
你遇到的无关包冲突提示本质是旧版conda默认依赖解析器的bug导致的,并非你本地安装了Dask这类包:旧解析器在遍历conda-forge全量包索引做依赖链路匹配时,经常会无意义引入和目标安装包完全无关的链路校验,不仅耗时极长,还会出现大量误报冲突。
以下是对应的解决方案:
- 方案1:完全跳过依赖校验,仅安装指定包
安装命令添加--no-deps参数即可实现只安装你明确指定的包,完全跳过所有依赖兼容性检查。该方案风险较高,仅适合你明确知道所有依赖都已提前安装完成的场景,修改后的命令如下:conda install --no-deps -c conda-forge pandas opencv tesseract matplotlib - 方案2:限制解析范围,忽略全局无关索引校验
执行安装命令时添加参数限制解析器仅检索当前激活环境的相关索引,避免拉取全局无关的包链路做校验,命令如下:
如果还是存在冲突,可以先临时开启离线模式,强制解析器仅使用本地已拉取的索引完成校验:conda install --no-channel-priority -c conda-forge pandas opencv tesseract matplotlibconda config --set offline True # 执行安装命令 conda install -c conda-forge pandas opencv tesseract matplotlib # 安装完成后关闭离线模式 conda config --set offline False - 方案3:更换高性能解析器从根源解决问题
旧版conda的默认解析器性能差、误报率高,更换为官方推出的libmamba解析器即可解决90%以上的解析耗时久、误报冲突的问题,配置方法如下:- 切换到base环境安装解析器
conda activate base conda install -n base conda-libmamba-solver- 设置为默认解析器
配置完成后切回你创建的xxx环境,执行原来的安装命令即可,正常情况下几分钟就能完成解析安装,不会再出现无关包冲突的提示。conda config --set solver libmamba
额外优化方案
你也可以在创建环境时就直接指定所有需要安装的包,一步完成环境创建和包安装,避免二次安装时的解析开销,命令如下:
conda create --name xxx python=3.7 pandas opencv tesseract matplotlib -c conda-forge
内容的提问来源于stack exchange,提问作者wvxvw
相关产品推荐
相关产品推荐

