配置含指定TensorFlow2.5.0、Numpy1.19版本的Conda环境冲突问题问询
Conda创建TensorFlow环境依赖冲突的原因
出现该冲突是多方面约束共同作用的结果,核心原因如下:
- 跨通道依赖规则不匹配:你的配置里同时添加了
conda-forge和defaults两个软件源,两个源的包维护规则不同,同名包的依赖声明、底层依赖(如MKL、BLAS、protobuf等)的版本约束存在差异。Conda跨源匹配版本时,无法找到同时满足两个源下所有包依赖规则的组合。 - 固定版本的约束互斥:你同时锁定了
numpy=1.19和tensorflow=2.5.0两个核心包的版本,而这两个版本在你配置的源下的依赖链存在冲突:defaults源构建的tensorflow 2.5.0对numpy的版本要求通常为>=1.19.2,<1.20.0,如果conda-forge源的numpy 1.19关联的底层数值库版本不符合tensorflow 2.5.0的要求,就会触发依赖冲突。 - 第三方包的传递依赖冲突:清单中的matplotlib、pandas、netcdf4等第三方包如果拉取最新版本,其对numpy或者其他公共依赖的版本要求可能和你固定的两个核心包的依赖规则冲突,Conda遍历所有传递依赖后找不到符合全部约束的版本组合。
注:Conda的依赖处理能力是在所有包的版本约束、源规则都存在可行解的前提下才能找到适配组合,如果多个约束本身不存在可行的匹配版本,就会提示冲突。
内容的提问来源于stack exchange,提问作者Scrabyard
相关产品推荐
相关产品推荐

