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

from moviepy.video.io import ffmpeg_reader

如果代码中没有此行,则一切正常,我可以从finder中的图标启动我的最终程序包。通过moviepy导入,如果我从终端启动,如下所示,它将起作用:
open ./myapp.app

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

谢谢!

最佳答案

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))

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

moviepy/audio/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的情况下进行下载。

关于python - pyinstaller和moviepy,ffmpeg可在终端上运行,但不能在finder中运行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26891588/

10-12 18:16