pyinstaller和moviepy,ffmpeg从终端工作,但不是从finder工作

Tod*_*odd 5 python ffmpeg pyinstaller

我在OSX Mavericks上使用pyinstaller 2.1打包python.我过去已成功完成此操作,但这是我的第一个使用moviepy和ffmpeg的软件包.我使用以下导入:

from moviepy.video.io import ffmpeg_reader
Run Code Online (Sandbox Code Playgroud)

在代码中没有这一行,一切正常,我可以从finder中的图标启动我的最终包.使用moviepy导入,如果我从终端启动,它将工作如下:

open ./myapp.app
Run Code Online (Sandbox Code Playgroud)

但如果我点击查找器中的图标(快速打开并崩溃),它将无法打开.我假设这与在终端中设置的路径或环境变量有关,但不会传输到我的打包应用程序.我已经在pyinstaller中尝试了各种用于moviepy及其依赖项的隐藏导入,但似乎没有任何效果.--debug模式没有提供太多信息来追踪它.还有其他想法吗?

谢谢!

小智 1

moviepy 和 pyinstaller 存在一些问题。

首先,尝试将错误写入文本文件

try:
    from moviepy.video.io import ffmpeg_reader
except Exception as e:
    with open('/absolute/path/to/error.txt',mode="w+") as f:
        f.write(str(e))
Run Code Online (Sandbox Code Playgroud)

1)您可能需要修改这两个文件以删除“exec”导入语句

moviepy/音频/fx/all/__init__.py,moviepy/video/fx/all/__init__.py

请参阅此处: https: //github.com/pratikone/videoVenom/blob/master/moviepy/audio/fx/all/__init__.py https://github.com/pratikone/videoVenom/blob/master/moviepy/video/ fx/all/__init__.py

2)你可能需要这个语句imageio.plugins.ffmpeg.download(),以便在找不到时下载ffmpeg。