为什么Conda搭配TensorFlow使用时会安装版本不符的gast依赖包?
Conda环境下TensorFlow 2.4.1与gast的依赖冲突处理
实际运行场景
- 从Conda默认渠道自动安装的TensorFlow 2.4.1,会自动拉取配套的gast 0.4.0版本,运行时会频繁触发gast模块相关的报错
- 经过官方团队验证的问题修复方案为:将gast版本调整为0.3.3即可完全规避报错
- 直接在Conda环境中安装gast 0.3.3时,依赖解析会提示必须把TensorFlow降级到2.2版本,才能完成安装
- 关于冲突根源的普遍争议:到底是TensorFlow开发团队没同步维护Conda渠道的依赖配置,还是Conda渠道维护方自行设置了依赖规则,多数有实际操作经验的用户判断前者是核心原因
无需强制降级TensorFlow的解决方法
- 在已安装TensorFlow 2.4.1的Conda环境中,直接通过pip完成gast的版本修正,绕开Conda渠道的旧依赖锁,执行命令:
pip install gast==0.3.3 --force-reinstall - 如果要求全部组件通过Conda安装,可切换到conda-forge社区渠道拉取组件,对应执行命令:
conda install -c conda-forge tensorflow=2.4.1 gast=0.3.3,该渠道的依赖配置已同步官方要求,不会触发强制降级提示
冲突根源的明确说明
- 核心诱因确实是TensorFlow开发团队对Conda渠道的依赖维护不同步*:TensorFlow 2.4.1发布时,官方的依赖适配规则(要求gast版本在0.3.3到0.4.0区间)仅同步到主分发渠道PyPI,而Conda默认主渠道的TensorFlow 2.4.1构建包由独立社区维护,未及时更新上述依赖范围,错误绑定了gast的版本上限,才会在调整gast版本时触发强制降级要求。
- Conda渠道维护方的独立规则设置并非主因:同步了官方依赖要求的社区Conda渠道(如conda-forge)的TensorFlow 2.4.1包,完全支持搭配gast 0.3.3版本,不存在强制降级的问题。
内容的提问来源于stack exchange,提问作者Mastiff
相关产品推荐
相关产品推荐

