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

GitHub Actions编译Python脚本及复制文件执行报错问题咨询

GitHub Actions 工作流配置问题说明

你的配置一共存在两处核心错误,分别对应两个报错现象:

问题1:downloads目录下找不到abc.pyc文件

  • 根因:Python 3.x 版本的py_compile模块默认不会把编译生成的.pyc文件输出到执行命令的当前目录:
    1. 默认规则下,.pyc文件会存放在被编译的源文件(即../Library/abc.py)同级的__pycache__子目录中,文件名会带上Python版本后缀,例如abc.cpython-37.pyc,完整路径为../Library/__pycache__/abc.cpython-37.pyc
    2. 你执行ls时当前目录是downloads,自然看不到存放在Library目录下的pyc文件。

问题2:COPY命令返回127错误码

  • 根因:COPY是Dockerfile的专属语法指令,不是Linux Shell的标准命令,Shell环境下复制文件的命令是全小写的cp。错误码127是系统找不到指定命令的标准返回值,和文件是否存在没有关系。
  • 路径校验:从运行日志看,执行pwd时当前路径确实是/__w/repo_name/repo_name/downloads,../qwe.txt的路径完全正确,只要把COPY换成cp就能正常执行复制操作。
修正后的run段代码参考
- name: Build Compiled files
  run: |
    mkdir -p downloads
    cd downloads
    pwd
    # 直接指定pyc文件输出到当前downloads目录
    python3 -c "import py_compile; py_compile.compile('../Library/abc.py', cfile='./abc.pyc')"
    ls
    # 替换大写COPY为小写cp命令
    cp ../qwe.txt qwe.txt

可选方案:如果你不需要自定义pyc的输出路径,也可以在执行完默认编译命令后,把生成的pyc文件移动到downloads目录:

python3 -m py_compile ../Library/abc.py
mv ../Library/__pycache__/abc.cpython-37.pyc ./abc.pyc

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 15:36:16