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

问题描述 投票:0回答:1

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

有人对创建具有外部依赖项的 Python 模块有一般建议,或者对跨平台标准化 FFmpeg 安装有具体建议吗? Distutils 似乎非常有帮助——是否有其他指南或标准实践来开发打包整齐的 Python 工具?我希望最大程度地减少最终用户的安装难题。

python ffmpeg distutils software-distribution
1个回答
2
投票

对于 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。

© www.soinside.com 2019 - 2024. All rights reserved.