Python 3.x 未找到pydub ffprobe
我有一个MacOS应用程序,它是用Python 3.x 未找到pydub ffprobe,python-3.x,ffmpeg,py2app,pydub,Python 3.x,Ffmpeg,Py2app,Pydub,我有一个MacOS应用程序,它是用py2app编译的。该应用程序使用pydub模块,后者使用ffmpeg系列软件包 问题是,一旦我编译应用程序并将其移动到另一个操作系统,来自pydub的子流程调用无法找到任何ffmpeg包,即使它们安装在/usr/local/bin中 如果我从终端/Nameapp.app/Contents/MacOs/Nameapp启动应用程序,那么它运行没有问题,但是如果我双击启动它,那么pydub抱怨找不到包,应用程序挂起在ffmpeg/ffprobe应该工作的地方 我可以
py2app
编译的。该应用程序使用pydub
模块,后者使用ffmpeg系列软件包
问题是,一旦我编译应用程序并将其移动到另一个操作系统,来自pydub
的子流程调用无法找到任何ffmpeg
包,即使它们安装在/usr/local/bin
中
如果我从终端/Nameapp.app/Contents/MacOs/Nameapp
启动应用程序,那么它运行没有问题,但是如果我双击启动它,那么pydub
抱怨找不到包,应用程序挂起在ffmpeg/ffprobe
应该工作的地方
我可以看到pydub
只有在从终端启动时才会在/usr/local/bin
中搜索,否则不会。如果我将/usr/local/bin
添加到路径
,pydub
不再抱怨它找不到ffmpeg/ffprobe,但它仍然给我一个ffmpeg和ffprobe的错误:[Errno 2]没有这样的文件或目录:
如果我硬编码路径pydub.AudioSegment.converter=“/usr/local/bin/ffmpeg”
,则应用程序只会给我ffprobe错误[Errno 2]没有这样的文件或目录:'ffprobe':'ffprobe'
在其他一些帖子中,我看到了pydub.AudioSegment.ffprobe=“/path/to/ffprobe”
,但它在我的情况下似乎不起作用
所以我的两个问题是:
如何在pydub中硬编码ffprobe路径?
如何在不使用硬编码路径的情况下解决此问题?由于某些原因,将shell更改为zsh时,它会起作用。。。切换回bash否。我对这个解决方案不太满意,但这是一个类似的问题我在过去有过类似的经历,我能够通过调用子流程
来解决这个问题,方法是使用['/bin/bash','-I','-c',name]
。但我不想在这里这么做