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

Conda安装iris时出现linux-64与glibc不兼容的UnsatisfiableError问题求助

问题分析与解决方案

为什么会出现这个差异?

这本质上是conda频道优先级和依赖解析逻辑导致的,核心原因有两点:

  1. 跨频道依赖冲突
    当你先执行conda create --name py36 python=3.6 spyder jupyter创建环境时,conda默认会从defaults频道拉取Python、Spyder、Jupyter这些基础包。而后续安装的iris来自conda-forge/label/rc_iris这个预发布频道,它的依赖是基于conda-forge生态下编译的包,和defaults频道的包在glibc相关系统库的依赖上存在版本不匹配——虽然你的系统glibc版本是2.17,但不同频道的包编译时依赖的glibc子版本、符号集可能不同,导致conda无法找到兼容的依赖组合。

而直接用conda create --name py36 -c conda-forge iris python=3.6 spyder jupyter创建环境时,你明确指定了优先使用conda-forge频道,conda会从头为整个环境选择所有包的版本,确保所有依赖都来自同一个生态,自然不会出现glibc相关的冲突。

  1. 依赖解析的范围差异
    先创建环境再安装包时,conda会被已安装的包“限制”——它必须在已有包的基础上去匹配新包的依赖,这种情况下很容易出现冲突;而直接创建包含所有所需包的环境时,conda可以自由选择所有包的兼容版本,有更大的空间构建无冲突的依赖链。

如何避免后续出现类似glibc错误?

这里有几个可靠的解决方案:

  • 统一使用conda-forge作为默认频道
    修改你的conda配置文件(Linux/macOS路径为~/.condarc,Windows路径为C:\Users\<你的用户名>\.condarc),设置频道优先级,让conda优先从conda-forge拉取所有包:

    channels:
      - conda-forge
      - defaults
    channel_priority: strict
    

    这样能确保你的所有环境都基于conda-forge生态,避免跨频道的依赖冲突。

  • 安装包时明确指定conda-forge频道
    如果不想修改默认频道,每次安装新包时都加上-c conda-forge参数,比如:

    conda install -c conda-forge iris
    

    强制使用conda-forge的包来匹配依赖。

  • 谨慎使用带标签的预发布频道
    conda-forge/label/rc_iris是预发布版本的频道,这类版本的依赖通常更严格,更容易和现有环境冲突。除非你明确需要测试预发布功能,否则建议直接使用conda-forge主频道的包(即去掉/label/rc_iris部分)。如果确实需要预发布版,最好在创建环境时就一起指定该频道,确保整个环境的依赖都对齐。

内容的提问来源于stack exchange,提问作者Amethyst

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.28 17:29:04