You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

pip依赖解析器未校验全量已安装包 多包版本依赖冲突如何解决

pip依赖冲突报错排查修复

原始报错内容

ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
daal4py 2021.5.0 requires daal==2021.4.0, which is not installed.
mxnet 1.7.0.post2 requires numpy<1.17.0,>=1.8.2, but you have numpy 1.18.5 which is incompatible.
d2l 0.17.5 requires numpy==1.21.5, but you have numpy 1.18.5 which is incompatible.
d2l 0.17.5 requires requests==2.25.1, but you have requests 2.18.4 which is incompatible.

报错核心含义

当前使用的pip版本依赖解析逻辑不会在安装/更新包时全量校验所有已安装包的版本要求,长期零散装包后攒出了以下几类问题:

  • 缺失依赖:daal4py 2021.5.0 强依赖的daal==2021.4.0没有安装
  • 版本不兼容:
    • mxnet 1.7.0.post2要求numpy版本在>=1.8.2,<1.17.0区间,当前环境numpy是1.18.5,超出要求上限
    • d2l 0.17.5要求固定版本numpy==1.21.5、requests==2.25.1,当前环境对应包版本为1.18.5、2.18.4,均不满足要求
    • 其中mxnet和d2l对numpy的版本要求完全没有交集,不存在能同时满足两者要求的numpy版本,是核心冲突点

修复步骤

  • 优先从根源规避问题:全局Python环境混装不同项目依赖是这类冲突的核心诱因,不同项目使用独立虚拟环境隔离,装包时尽量把同项目需要的包和对应版本写在requirements.txt中一次性安装,让pip可以统一做依赖解析,避免零散装包攒出冲突。
  • 按实际使用场景解决当前环境冲突:
    • 场景1:主要使用d2l(动手学深度学习)相关代码
      执行以下命令卸载冲突的低版本mxnet、依赖缺失的daal4py,安装d2l要求的对应版本包:
      pip uninstall -y mxnet daal4py
      pip install numpy==1.21.5 requests==2.25.1
      
      后续如果需要使用mxnet,安装适配高版本numpy的新版本即可,不要使用1.7.0.post2这个过旧版本。
    • 场景2:主要使用mxnet 1.7.0.post2的老项目
      执行以下命令卸载不兼容的d2l、daal4py,将numpy降到mxnet要求的版本区间:
      pip uninstall -y d2l daal4py
      pip install "numpy>=1.8.2,<1.17.0"
      
  • 补装缺失依赖(如果确定需要保留daal4py):执行pip install daal==2021.4.0即可,注意daal4py本身也有numpy版本要求,装完要确认和当前环境其他包不冲突。
  • 校验修复结果:所有操作执行完后,跑pip check命令,没有输出任何冲突提示就说明当前环境依赖正常。

注意:不要保留当前1.18.5版本的numpy凑合用,这个版本既不满足mxnet的要求也不满足d2l的要求,运行代码时会出现难以定位的API报错、计算结果异常等问题。


内容的提问来源于stack exchange,提问作者Fadepo joshua tobi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 09:15:35