分发具有 ffmpeg 依赖性的 Python 模块

Distributing a Python module with ffmpeg dependency

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

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

非常感谢。

对于Windows

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

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

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

其他平台

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