我有一个用py2app编译的MacOS应用程序。该应用程序使用pydub模块,后者使用ffmpeg家族包。
问题是,一旦我编译应用程序并将其移动到不同的操作系统,来自pydub的subprocess调用无法找到任何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:,它仍然会给我一个错误。
如果我硬编码路径错误,应用程序只会给我ffprobe pydub.AudioSegment.converter = "/usr/local/bin/ffmpeg" [Errno 2] No such file or directory:'ffprobe': 'ffprobe'。
在其他一些帖子中,我看到了pydub.AudioSegment.ffprobe = "/path/to/ffprobe",但它在我的情况下似乎不起作用?
所以我的两个问题是:
如何在pydub中对ffprobe路径进行硬编码?
如何在没有硬编码路径的情况下解决这个问题?
发布于 2019-09-22 00:39:40
由于某些原因,当将shell更改为zsh时,它会起作用。切换回bash no。我对这个解决方案不太满意,但它是
https://stackoverflow.com/questions/58000698
复制相似问题