我正在开发一个 Python 模块,该模块利用 FFmpeg 框架的一些功能 - 特别是 ebur128 过滤器函数。理想情况下,该模块将独立作为一个独立的、与平台无关的工具,用于验证音频剪辑是否符合 EBU 响度标准。它的设计使最终用户只需要执行一个简单的、(希望如此!)无痛的安装过程,其中包括 FFmpeg 库和我的 Python 包装器/GUI 的安装。
有人对创建具有外部依赖项的 Python 模块有一般建议,或者对跨平台标准化 FFmpeg 安装有具体建议吗? Distutils 似乎非常有帮助——是否有其他指南或标准实践来开发打包整齐的 Python 工具?我希望最大程度地减少最终用户的安装难题。
我认为很容易找到适用于任何系统的 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。