如何在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
相关产品推荐
相关产品推荐

