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

在PythonAnywhere上配置ffmpeg以解决pydub的sound.export报错问题

解决PythonAnywhere上pydub调用ffmpeg失败的问题

首先明确:PythonAnywhere确实为所有用户预装了ffmpeg,路径是/usr/bin/ffmpeg,不用额外安装,只需要让pydub能精准找到它就行,给你两种靠谱的解决办法:

方法1:代码里直接指定路径(最省心)

在导入pydub的代码后,直接添加一行指定ffmpeg路径,不用改任何环境配置:

from pydub import AudioSegment

# 指定PythonAnywhere上的ffmpeg路径
AudioSegment.converter = "/usr/bin/ffmpeg"

# 之后正常执行导出逻辑
sound.export(export_path, format="mp3", bitrate="128k")

这种方式直接让pydub定位到ffmpeg,不会出现路径检测问题,是最稳妥的方案。

方法2:通过环境变量配置

如果你习惯用环境变量管理依赖路径,有两种可选方式:

  • 方式A:PythonAnywhere后台配置全局环境变量
    登录PythonAnywhere进入你的Web应用页面,找到「Environment variables」选项,添加一条键值对:
    FFMPEG_PATH=/usr/bin/ffmpeg
    重启Web应用后,代码里可以这样调用:

    import os
    from pydub import AudioSegment
    
    AudioSegment.converter = os.getenv("FFMPEG_PATH")
    
  • 方式B:在已有.env文件中添加配置
    直接在你的.env文件里追加一行:
    FFMPEG_PATH=/usr/bin/ffmpeg
    确保代码加载了.env文件(比如用python-dotenv库),再赋值给pydub:

    from dotenv import load_dotenv
    import os
    from pydub import AudioSegment
    
    load_dotenv()
    AudioSegment.converter = os.getenv("FFMPEG_PATH")
    

不需要手动将ffmpeg路径添加到系统PATH中,因为PythonAnywhere的/usr/bin本来就在默认PATH里,但pydub偶尔会因为虚拟环境的隔离性无法自动检测到,所以直接指定路径是最高效的解决方式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 17:35:17