No module named av:装了 FFmpeg,为什么 Python 还是找不到?
分别检查 PyAV 的 Python 入口、其使用的多媒体库,以及节点调用的外部 FFmpeg 程序。
现象与适用范围
No module named 'av'、原生库导入失败、外部 ffmpeg 命令报错和媒体解码失败属于不同阶段。先确定报错来自哪条调用路径,再改依赖。
已核对的依据
当前 PyAV 安装指南 所述 18.1.0 版本要求 Python 3.11 或更新。其 Linux、macOS、Windows 二进制 wheel 随包提供 FFmpeg 库;若用自己的 FFmpeg 从源码构建 PyAV,则另需对应的开发库和工具。PyAV 在 Python 中以 av 导入,提供容器和帧接口。FFmpeg 命令行程序 是独立可执行文件。只安装该程序不会自动安装 Python 绑定;能导入 PyAV wheel 也不证明节点能启动外部命令。
需要区分的情况
1. 启动 ComfyUI 的解释器找不到 av,或所选 PyAV 发行版没有适合该解释器、平台的 wheel。
2. av 已安装,但原生扩展或 FFmpeg 库加载失败。源码构建失败和二进制 wheel 导入失败的先决条件不同。
3. 节点启动的外部 ffmpeg/ffprobe 程序缺失,或找到的不是预期可执行文件。
4. Python 导入与命令查找都正常,但特定容器、编解码器、轨道或文件在解码、编码时失败。
建议的排查顺序
以下为本站编排的操作建议,不表示已定位你的具体环境。
1. 保存第一段完整 traceback 或子进程错误。用启动 ComfyUI 的同一解释器记录 Python、PyAV、节点版本及安装来源:python -m pip show av。安装来源可信时,再用该解释器运行 python -c "import av; print(av.__version__); print(av.library_versions)"。
2. 若完全找不到模块,将节点声明的 PyAV 范围与解释器、发行版 wheel 要求比较,不能假定当前 18.1.0 支持旧 Python。若是原生导入或源码构建失败,保存第一条缺库、头文件或编译器错误,先核对具体 wheel/源码产物,再决定是否需要改系统 FFmpeg。
3. 只有报错确实来自外部进程时,才查节点实际选用的可执行文件路径,并测试同一个程序。FFmpeg 命令行版本与 av.library_versions 报出的库版本不是一回事。
4. 在可恢复副本中,用短且非私人的视频测试报错节点:打开文件、读取一帧,以及所需音轨或输出编解码器。保留原始输入,每次只改一个依赖。
怎样判断这一层已解决
实际进程中所需的 Python 导入或外部命令可用,相关短视频操作也通过。只成功导入模块不代表编码格式或完整节点工作流可用。
注意事项和适用边界
PyAV wheel、源码构建与 FFmpeg 命令行的要求会随发行版和平台变化。不要为了一个 Python 缺包错误全局替换 FFmpeg 或全部视频节点。
资料复核并独立审阅中文:2026-09-26。本站未安装包、编译原生库、解码视频或运行 GPU。
原始来源
- PyAV installation documentation · 2026-09-26
- PyAV overview and basic demo · 2026-09-26
- FFmpeg command-line documentation · 2026-09-26
相关排查
排查下一个可能的原因
同样的现象可能来自不同原因。可以按顺序查看下面这些相关条目。
把完整日志粘贴到报错排查工具这篇内容对你有帮助吗?
匿名统计,只记录“有/没有帮助”的计数,不记录账号、IP 地址或设备信息。
资料来源
2026-09-26 复核 PyAV/FFmpeg 原始资料并独立审阅中文;未安装、构建或处理媒体,也未运行 GPU。
01PyAV installation documentation资料核对: 2026-09-2602PyAV overview and basic demo资料核对: 2026-09-2603FFmpeg command-line documentation资料核对: 2026-09-26报告问题 · 3ea6f31b-4008-5206-aaa3-96957ecf66f7
相关阅读
编辑为本页关联的条目。
用环境信息、单次变更和相同输入记录排查过程,区分安装记录、依赖检查和真实运行。