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

conda build跨机器运行报ResolvePackageNotFound依赖错误

根因分析

这个问题是Windows环境下conda-build的配置加载层级逻辑导致的,和构建环境的包版本、频道本身可用性无关:

  • 普通conda install命令会加载当前会话能读取到的所有配置(包括你存在H盘映射网络路径下的用户级.condarc),所以能正常识别自定义file协议频道,安装依赖没问题。
  • conda build在创建隔离构建/测试环境的阶段,不会主动加载存放在映射网络盘(你机器A的用户配置文件路径是H:\.condarc,属于网络映射盘)的用户级配置,只会读取系统盘下的系统级conda配置、当前用户主目录(系统盘下的C:\Users\用户名\路径)下的用户配置。你虽然在conda info输出里能看到自定义频道,那是因为外层的conda命令加载了H盘的配置,但内层启动的build求解进程没有加载到这部分配置,所以求解依赖时找不到自定义频道里的包。
  • 你之前克隆构建环境、移除重加频道都没解决问题,是因为这些操作修改的都是H盘下的用户配置,build阶段根本没读取这部分配置;显式加-c file:////custom/channel参数时,频道参数是直接通过命令行传给build求解进程的,不需要从配置文件读取,所以能正常构建。
解决方案

按稳定性优先级排序,选任意一个即可:

  • 方案1(最推荐,全局生效):将自定义频道写入系统级conda配置,所有场景下的conda命令(包括build)都会强制加载这部分配置。执行命令时加--system参数即可:
    conda config --system --add channels file:////custom/channel
    
    执行完成后可以打开C:\ProgramData\Miniconda3\.condarc确认频道已经写入,之后直接执行conda build .即可正常构建。
  • 方案2(项目级配置,适配多机器构建):在待构建的recipe根目录下新建conda_build_config.yaml文件,在文件内直接指定构建时使用的频道列表,配置跟随项目代码走,不会因为机器全局配置差异出问题:
    channels:
      - open3d-admin
      - file:////custom/channel
      - conda-forge
      - defaults
    
  • 方案3(无需修改系统/项目配置):把H盘下的.condarc文件复制一份到系统盘用户目录C:\Users\jpoppinga\.condarc路径下,conda-build默认会读取这个路径下的配置文件,复制完成后即可正常识别自定义频道。
验证方式

配置修改完成后,可以先执行conda build . --dry-run做干运行测试,如果没有抛出ResolvePackageNotFound错误,就说明配置已经被conda-build正确加载,不需要跑完整构建流程即可确认问题修复。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 15:54:31