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

使用Github Actions上传Anaconda包遇subprocess.CalledProcessError求助

我来帮你拆解下这个问题的根源,以及一步步的调试修复思路:

核心问题分析

你遇到的subprocess.CalledProcessError其实是两个连锁问题导致的构建失败:

  1. meta.yaml中指定的版本是0.1.1rc42,但实际下载的源码包却是0.1.1rc40
  2. 下载的源码包里缺少setup.py引用的Cython文件blablablabla/info_theory/libinfo.pyx
调试与修复步骤

1. 优先解决版本不匹配问题

版本不一致是后续所有问题的根源,先搞定这个:

  • 验证PyPI上的版本存在性:先手动确认PyPI上是否真的有0.1.1rc42版本的源码包。如果没有,要么把meta.yaml里的版本改成已存在的0.1.1rc40,要么先把0.1.1rc42的源码包上传到PyPI再继续。
  • 修复source URL的硬编码问题:建议用变量拼接URL,避免手动输入版本号出错,修改meta.yaml的source部分:
    source:
      url: https://files.pythonhosted.org/packages/source/e/blablablabla/blablablabla-{{ version }}.tar.gz
    
    这样只要version变量正确,URL就会自动匹配对应版本的源码包。

2. 排查Cython文件缺失问题

当版本匹配后,如果还是出现文件找不到的错误,要从这几个方向检查:

  • 版本差异导致的文件新增:如果libinfo.pyx是0.1.1rc42版本才新增的文件,那下载旧版本rc40自然找不到——解决版本问题后这个情况会自动消失。
  • 源码包打包不完整:检查你上传到PyPI的源码包是否包含了所有Cython文件。很多时候Python打包会漏掉.pyx这类非.py的源文件,需要在MANIFEST.in里明确声明要包含这些文件,比如:
    include blablablabla/info_theory/*.pyx
    
  • 路径拼写错误:核对setup.py里引用的文件路径和实际源码中的目录结构是否一致,有没有大小写或者目录名拼写错误。

3. 给Github Actions添加调试步骤

在你的上传脚本里加一些调试命令,能帮你直观看到构建环境里的实际情况:

# 在conda build之前,先查看下载的源码内容
cd /opt/conda/conda-bld/blablablabla_*/work
# 打印当前目录的文件结构,确认目标文件是否存在
ls -R blablablabla/info_theory/
# 查看源码包的实际版本
grep "version" setup.py

把这些命令加到脚本里,运行后就能清楚看到下载的源码里到底有没有libinfo.pyx,以及版本是否正确,快速定位问题。

4. 简化构建流程避免环境干扰

你的脚本里手动创建环境、安装依赖的步骤其实没必要,conda build会自动处理隔离的构建环境:

  • 删掉conda create -n myenv...这些手动创建环境的步骤,conda build会根据meta.yaml里的host和run依赖自动创建干净的构建环境,避免手动安装的依赖干扰构建。
  • 可以改用手动上传的方式,比自动上传更可控:
    修改后的脚本示例:
    conda config --set anaconda_upload yes
    apt-get update && apt-get install -y build-essential
    anaconda login --username $INPUT_ANACONDAUSERNAME --password $INPUT_ANACONDAPASSWORD
    # 指定构建输出目录,方便后续上传
    conda build . --output-dir ./built-packages
    # 手动上传构建好的包
    anaconda upload ./built-packages/*.tar.bz2
    anaconda logout
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 20:27:37