Python Azure Function环境下将ffmpeg添加到系统PATH路径问题咨询
Azure Function Linux环境Audioread报NoBackendError的解决方案
首先明确:Azure Function Linux环境的默认运行用户无root权限,/usr/bin属于系统只读路径,移动文件到该路径的操作本身就不可行,无需再尝试权限相关操作。
可用解决方案如下:
方案1:修改当前进程的PATH环境变量
Audioread检索FFMPEG时会遍历系统PATH路径,只需将FFMPEG所在的/home/site/wwwroot路径加入当前Python进程的PATH即可,在调用audioread.audio_open之前执行以下代码:
import os os.environ['PATH'] = f"/home/site/wwwroot:{os.environ['PATH']}"
操作完成后Audioread可直接识别到存放在wwwroot下的FFMPEG二进制文件。
方案2:强制指定Audioread的FFMPEG路径
如果方案1未生效(通常是低版本Audioread的路径检索逻辑写死导致),可直接强制指定FFMPEG的完整路径,导入Audioread后执行以下代码:
import audioread audioread.ffdec.FFMPEG_PATH = "/home/site/wwwroot/ffmpeg"
验证步骤
修改代码后可先输出对应配置确认生效:
# 验证PATH配置 print(os.environ['PATH']) # 验证Audioread的FFMPEG路径配置 print(audioread.ffdec.FFMPEG_PATH)
确认路径配置正确后,再调用audioread.audio_open(XXX.m4a)即可正常运行,不会抛出NoBackendError。
内容的提问来源于stack exchange,提问作者user14834847
相关产品推荐
相关产品推荐

