我有一个使用 py2app
编译的 MacOS 应用程序.该应用程序使用 pydub
模块,后者使用 ffmpeg 系列包。
问题是,一旦我编译了应用程序并将其移动到不同的操作系统,subprocess
来自 pydub
的电话找不到任何 ffmpeg
软件包,即使它们安装在 /usr/local/bin
中.
如果我从终端启动应用程序 ./Nameapp.app/Contents/MacOs/Nameapp
那么它运行没有问题,但如果我双击启动它,那么 pydub
提示找不到包和应用程序挂起 ffmpeg/ffprobe
应该做的工作。
我可以看到 pydub
在 /usr/local/bin
中搜索只有从终端启动,否则没有。如果我添加 /usr/local/bin
至PATH
, pydub
不再提示找不到 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路径?
如何在没有硬编码路径的情况下解决这个问题?
最佳答案
出于某种原因,它在将 shell 更改为 zsh 时会起作用...切换回 bash no。对这个解决方案不是很满意,但确实是这样
关于python-3.x - pydub 没有找到 ffprobe,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58000698/