python - 分发具有 ffmpeg 依赖项的 Python 模块

标签 python ffmpeg distutils software-distribution

这里是新秀软件开发人员。我正在开发一个 Python 模块,该模块利用 FFmpeg 框架的一些功能 - 特别是 ebur128 过滤器函数。理想情况下,该模块将独立作为一个独立的、与平台无关的工具,用于验证音频剪辑是否符合 EBU 响度标准。它的设计目的是让最终用户只需要执行一个简单的、(希望如此!)无痛的安装过程,其中包括 FFmpeg 库和我的 Python 包装器/GUI 的安装。

对于这个相当模糊的问题,我深表歉意,但是有人对创建具有外部依赖项的 Python 模块有一般建议,或者对跨平台标准化 FFmpeg 安装有具体建议吗? Distutils看起来很有帮助——是否有其他指南或标准实践来开发一个打包整齐的 Python 工具?我希望最大程度地减少最终用户的安装难题。

非常感谢。

最佳答案

对于 Windows

我认为找到适用于任何系统的 ffmpeg 二进制文件很容易,就像 Qt 或您正在使用的任何 GUI 库一样。您可以将这些二进制文件与您的项目一起发布,一切都会正常运行(不过您可能希望区分 32 位和 64 位系统)。

您似乎想要创建一个独立且易于最终用户安装的软件。 Inkscape 就是这样一个例子——它的安装程序包含 Python 和所有其他依赖项,以二进制形式(如果需要)。也就是说,对于 Windows,您不需要需要创建一个真正的 Python 包(这将允许使用 pip 安装),并且您不需要需要查看 distutils(它支持构建 C 扩展)。我猜你们都不需要/不想要。

也许您构建一个良好的目录结构并使用您的软件分发 ZIP 存档就足够了。例如,如果您不需要与 Windows 注册表交互,这就足够了。在 Windows 世界中,此类程序通常称为“独立”程序。但是,您可能仍然想要一个真正的 Windows 安装程序(即使它只是一个自解压存档)。我相信以下文章涵盖了您的要求:http://cyrille.rossant.net/create-a-standalone-windows-installer-for-your-python-application/ 它建议使用 http://www.jrsoftware.org/isinfo.php用于创建这样的安装程序。

其他平台

在其他操作系统上,这会更加困难。例如,我认为创建在每个 Linux 系统上运行的 ffmpeg 二进制文件几乎是不可能的,因为 ffmpeg 本身有如此多的二进制依赖项。我不知道你是否可以静态构建 ffmpeg。

关于python - 分发具有 ffmpeg 依赖项的 Python 模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28092776/

相关文章:

python - selenium python 通过里面的文本点击一个 href

ffmpeg - 在 FFMpeg Ubuntu “rtmp://url live=1” 中不起作用

python - 如何在本地目录中有 avbin.dll(不是 C :\Windows\System) (for pyglet 1. 2.4)

python - 我需要对我的 python 代码做些什么才能让它成为一个模块?

python - 如何隐藏 Tkinter python Gui

python - 在 matplotlib 中使用 ffmpeg 制作动画时出现 "The system cannot find the file specified"

python - 我可以更有效地拆分包含混合元组/无的列吗?

ffmpeg - 如何更改输入视频的 ffmpeg 缓冲区

python - Python 包是否可以依赖于另一个 Python 包的特定版本控制修订版?

python - Distutils 在 Ubuntu 上忽略 build/lib