包许可证

警告

这不是一份具有法律权威性的指南!Kivy 组织、作者及贡献者对本指南中可能存在的知识缺失、信息不足或建议不当不承担任何责任。本指南仅供参考,旨在保护经验不足的用户。

你的代码本身可能不需要包含其他所包含软件的许可信息或版权声明,但二进制文件则不同。当创建二进制文件(如 .exe、.app、.apk 等)时,它会包含 Kivy、其依赖项以及你的应用程序所使用的其他包。

其中一些许可证要求在您的应用程序中(或更多地方)包含版权声明。在分发任何二进制文件之前,请**检查所有不属于您源代码的创建文件**(如 .dll、.pyd、.so 等),并根据这些文件所属许可证的要求,包含适当的版权声明。这样您就能满足 Kivy 依赖项的许可要求。

依赖项

Kivy 所支持的每个平台上,所有依赖项都将至少部分被使用。因此,您需要遵守它们的许可证,这通常只需在您的应用中粘贴版权声明,而不要假装这些代码是您自己编写的。

你可能需要手动检查图像和音频库(大多数以 lib 开头)。属于它们的 LICENSE* 文件应由 PyInstaller 包含,但 python-for-android 不会包含这些文件,你需要自行找到它们。

Windows(PyInstaller)

为了访问某些Windows API功能,Kivy使用了|win32|_包。该包根据`PSF许可证 <https://opensource.org/licenses/Python-2.0>`_发布。

Visual Studio 可再发行组件

使用Visual Studio(官方版)编译的Python包含来自Microsoft的文件,您只能在CRTlicense中列出的特定条件下重新分发这些文件。您需要包含这些文件的名称,并根据您使用的解释器,提供|py2crt|_或|py3crt|_的改写版本,并将其呈现给应用程序的最终用户,以满足其要求。

其他库

备注

请为那些你*不直接使用*但在Windows上使用例如PyInstaller打包后出现的其他库添加归属说明。

Linux

Linux 有许多发行版,这意味着没有一个适用于所有发行版的正确指南。这也适用于树莓派(RPi)。然而,根据你创建包的方式(也涉及 PyInstaller),可以简化为两种方式:包含或不包含二进制文件。

如果包含了二进制文件,您应检查所有非您源代码的文件(如 .so),并确定其所属许可证。根据该许可证的要求,您可能需要在应用程序中加入署名,甚至可能需要更多操作,具体取决于该许可证的规定。

如果未包含二进制文件(这允许将您的应用打包为例如 .deb 包),则存在 situation bad for your user。是否满足其他许可证的条件,例如是否在您的应用中包含版权声明,由您自行决定。

安卓

APK 或 AAB 仅仅是一个文件归档:你可以从中提取文件,并(如同 Windows 可再发行组件一样)检查所有文件。

private.tar 包含了所有随附的文件。其中大部分与 Kivy、Python 或您的源代码相关,但那些不相关的文件需要检查。

apk: APK/assets/private.tar

aab: AAB/base/assets/private.tar

Kivy 直接或通过 SDL3 包含的其他库位于 APK/lib/*AAB/base/lib/* 中。其中大部分与依赖项相关,或由 python-for-android 生成,并属于其源代码(及许可)的一部分。

警告

libpybundle.so 实际上是一个包含 Python 模块site-packagestarball。出于许可审查的目的,您可能希望通过 tar -xvf libpybundle.so 来检查其内容。

macOS

缺失。

很抱歉,您发送的内容只有“iOS”一词,没有提供需要翻译的英文技术文档内容。请发送完整的英文文本,我将为您翻译成简体中文。

缺失。

避免使用二进制文件

有一种方法可以完全避免创建包含第三方内容的发行版,从而绕开这一许可流程。使用Python,你可以创建一个模块,其中仅包含你的代码,包括``__main__.py``和``setup.py``,后者仅列出所需的依赖项。

这样,你仍然可以分发你的应用——即你的*代码*——并且你可能无需担心其他许可证。你的代码与依赖项的组合可以被视为一种“使用”而非“分发”。然而,满足许可证要求的责任很可能转移给你的用户,他们需要组装环境才能运行该模块。如果你关心你的用户,或许应该放慢脚步,多了解一下|cons|_。