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

Conda环境blas包锁定在1.0版本无法升级的原因排查方法

Conda 环境BLAS版本锁定排查方法

按以下步骤依次排查,可直接定位锁版本的根因:

  • 先查反向依赖
    先安装依赖树查询工具conda-tree,直接查所有依赖blas的已安装包:
    conda install -n base conda-tree -c conda-forge
    conda tree depends blas --reverse
    
    输出结果中会标注每个包对blas的版本要求,凡是明确约束blas=1.0或blas 1.0*的包,就是直接锁版本的来源。
  • 模拟升级看冲突日志
    不需要实际执行升级,跑dry-run模拟安装目标版本的blas,conda的解算器会直接抛出完整冲突链:
    conda install blas=2.21=mkl --dry-run
    
    日志里会明确写出是哪个包的版本约束和blas 2.21不兼容,还是通道配置导致解算器选不到高版本。
  • 检查手动锁定配置
    两类手动锁版本的配置会强制固定包版本:
    1. 全局conda配置中的固定包列表,执行命令查看:
      conda config --show pinned_packages
      
      如果输出包含blas相关版本条目,执行conda config --remove pinned_packages <对应blas条目>删除即可。
    2. 当前环境下的pin文件,路径为$CONDA_PREFIX/conda-meta/pinned,如果文件存在,打开后删除所有blas相关的版本约束行即可。
  • 排查通道配置与缓存问题
    执行以下命令查看通道配置:
    conda config --show channels channel_priority
    
    如果同时启用了defaults和conda-forge源,且通道优先级不是strict,很容易出现解算器优先匹配defaults源旧依赖树的情况——blas 1.0 mkl是defaults源的长期留存旧版本,和conda-forge的2.x版本依赖链不兼容。这种情况先清理本地缓存再重新解算:
    conda clean -a -y
    

注:近1个月conda-forge源的blas 2.x版本做了依赖结构重构,将原单包整合的BLAS实现拆分为了多实现元包结构,如果环境内存在从defaults源安装的旧版numpy、scipy等科学计算包,且这些包未同步升级,就会强制要求blas停留在1.0版本以满足旧依赖约束。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.02 23:27:28