首页 > 解决方案 > pydub 没有找到 ffprobe

问题描述

我有一个用于 MacOS 的应用程序,它是用py2app. 该应用程序使用pydub模块,后者使用 ffmpeg 系列包。

问题是,一旦我编译了应用程序并将其移动到不同的操作系统,subprocess即使pydub它们ffmpeg安装在/usr/local/bin.

如果我从终端启动应用程序,./Nameapp.app/Contents/MacOs/Nameapp那么它运行没有问题,但如果我双击启动它,则会pydub抱怨找不到包并且应用程序挂起ffmpeg/ffprobe应该在哪里工作。

我可以看到只有从终端启动时才会进行pydub搜索/usr/local/bin,否则不会。如果我添加/usr/local/binPATHpydub不再抱怨它没有找到 ffmpeg/ffprobe,但它仍然给我一个 ffmpeg 和 ffprobe: 的错误 [Errno 2] No such file or directory:

如果我硬编码路径pydub.AudioSegment.converter = "/usr/local/bin/ffmpeg",应用程序只会给我 ffprobe 错误[Errno 2] No such file or directory:'ffprobe': 'ffprobe'

在我见过的其他一些帖子上pydub.AudioSegment.ffprobe = "/path/to/ffprobe",但它似乎不适用于我的情况?

所以我的两个问题是:

如何在pydub中硬编码ffprobe路径?
如何在没有硬编码路径的情况下解决这个问题?

标签: python-3.xffmpegpy2apppydub

解决方案


出于某种原因,它在将 shell 更改为 zsh 时起作用...切换回 bash no。对这个解决方案不是很满意,但确实是这样


推荐阅读