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

如何在GitHub Actions的Windows环境中将FFmpeg添加至Path?

在GitHub Actions Windows环境中配置FFmpeg路径的问题

我在GitHub Actions的Windows环境下测试Python模块时遇到了麻烦:必须安装FFmpeg并确保它在系统Path中,但不管是在工作流文件里操作,还是通过安装FFmpeg的Python脚本修改,都没法成功把FFmpeg路径加入Path。

我用一个Python脚本安装FFmpeg,它添加Path的代码如下:

def add_path_to_environment(path):
    '''Adds a filepath to the users PATH variable after asking the user's consent'''
    os_path = os.environ['path']
    if not os_path.endswith(';'):
        os_path += ';'
    command = f'[Environment]::SetEnvironmentVariable(\"Path\",\"{os_path}{path}\",\"User\")'
    print('\n\n')
    print(command)
    print()

    try:
        subprocess.check_output(['powershell', command])
    except subprocess.CalledProcessError as e:
        print(e.stdout.decode())

我在工作流里的最新尝试是用这些PowerShell命令:

[Environment]::SetEnvironmentVariable("Path", $env:Path + ";C:\FFMPEG\bin\", [System.EnvironmentVariableTarget]::User)
echo $env:Path
ffmpeg -version

我也试过直接修改当前会话的Path:

$env:Path += ";C:\FFMPEG\bin\"

请问有没有办法能成功把FFmpeg加入Path?


可行解决方案

  • 方法1:让路径在GitHub Actions全流程生效
    GitHub Actions的每个步骤是独立会话,直接修改$env:Path只对当前步骤有效。要让后续步骤也识别,需把路径写入GitHub Actions的环境变量文件:

    # 确认FFmpeg安装路径正确
    $ffmpegPath = "C:\FFMPEG\bin"
    # 给当前会话添加路径
    $env:Path += ";$ffmpegPath"
    # 写入环境变量文件,让后续步骤继承
    echo "PATH=$env:Path" | Out-File -FilePath $env:GITHUB_ENV -Append
    # 验证
    ffmpeg -version
    
  • 方法2:用现成Action一键配置
    直接用GitHub Marketplace的Action安装并自动配置FFmpeg,无需手动处理路径:

    - name: Setup FFmpeg
      uses: schmiddim/setup-ffmpeg@v1
      with:
        ffmpeg-version: 'latest'
    
  • 方法3:修改原有Python脚本逻辑
    原有脚本修改的是User级环境变量,临时Runner环境下需要重启会话才生效,改成直接修改当前进程Path并写入GitHub_ENV:

    import os
    import subprocess
    
    def add_path_to_environment(path):
        # 给当前进程添加路径
        if path not in os.environ['PATH'].split(';'):
            os.environ['PATH'] += ';' + path
        # 写入环境变量文件,同步到后续步骤
        with open(os.environ['GITHUB_ENV'], 'a') as f:
            f.write(f'PATH={os.environ["PATH"]}\n')
        # 验证安装
        subprocess.run(['ffmpeg', '-version'], check=True)
    

内容的提问来源于stack exchange,提问作者Alarm-1202

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 08:17:34