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

如何指定conda构建包对应的git分支源

解决方案

你可以通过两种路径实现需求,分别对应修改versioneer版本规则、调整conda安装/构建规则:

方案1:自定义versioneer版本号规则,让master分支版本优先级更高

conda的版本排序遵循PEP440规范,你可以通过配置versioneer,让master分支生成的版本号天然比其他分支同进度的版本号优先级更高,这样conda默认就会优先安装master分支的最新构建:

  • 首先在项目的setup.cfg或者versioneer.cfg中启用自定义版本样式,或者直接修改项目根目录下的versioneer.py中的版本格式化逻辑,核心规则参考:
    • 当检测到当前构建对应git分支为master时,生成标准的主版本号.次版本号.修订号.dev<距离最新tag的提交数>格式的版本号,例如上一个tag为v2.1.0,master分支后续有5次提交,版本号为2.1.1.dev5
    • 当检测到非master分支构建时,在版本号后追加低优先级标识,例如将dev序号叠加一个足够大的固定值(比如10000),同时增加分支名后缀,同进度的dev分支版本号会生成为2.1.1.dev10005+dev,PEP440排序中dev5优先级高于dev10005,自然会优先选择master分支版本
  • 注意构建包时需要保留完整git仓库信息(不要使用浅克隆),否则versioneer无法正确读取分支名。

方案2:通过conda构建/安装规则区分分支

如果你不想调整版本号生成逻辑,也可以通过conda侧的配置实现需求:

  • 第一种方式:构建时给不同分支的包设置不同的build标识,比如master分支的构建设置build字符串为master_<构建号>,其他分支设置为<分支名>_<构建号>,安装时通过匹配build字符串筛选master分支的包,命令为:
    conda install "你的包名=*=*master*"
    
  • 第二种方式:使用独立的conda channel区分不同分支的构建,master分支的构建包推送到优先级更高的主channel,其他分支推送到测试channel,conda默认会优先从高优先级channel拉取包,自然就会安装master分支的最新版本。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 05:15:04