我有一个用Python编写的应用程序,它与Pyinstaller一起打包。
根据我的理解(我不是律师(和 Pyinstaller 常见问题解答,捆绑源代码并使用我自己的许可证分发似乎是可以的(第 1 点和第 2 点(。无论如何,我无意修改 Pyinstaller 源代码,所以我认为这里没有任何问题(与 Pyinstaller GPL 许可证有关,第 4 点和第 5 点(。
我的问题专门针对我的依赖项,超出了标准库。 我的虚拟环境pip list
(venv) pip list
Package Version
-------------- ---------
altgraph 0.16.1
colorama 0.4.1
et-xmlfile 1.0.1
future 0.18.2
jdcal 1.4.1
nose 1.3.7
numpy 1.17.4
openpyxl 3.0.0
pefile 2019.4.18
Pillow 7.0.0
pip 19.0.3
PyInstaller 3.5
pywin32-ctypes 0.2.0
setuptools 40.8.0
以 numpy 为例pip show numpy
(venv) pip show numpy
Name: numpy
Version: 1.17.4
Summary: NumPy is the fundamental package for array computing with Python.
Home-page: https://www.numpy.org
Author: Travis E. Oliphant et al.
Author-email: None
License: BSD
Location: c:devtoolvenvlibsite-packages
Requires:
Required-by:
如果我看一下 BSD 许可证文件
* Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following
disclaimer in the documentation and/or other materials provided
with the distribution.
这是否意味着我需要复制 numpyLICENSE.txt
文件,并将其与我的分布式应用程序一起分发(所有其他依赖项也是如此(?这个例子是否构成二进制形式的再分发?还是我误解了这里的含义?
似乎任何具有多个依赖项的项目,即使用 Pyinstaller 都会有一个非常大的任务来保持这些依赖项,因此这让我怀疑我是否正确理解了这些概念。
是的,就是这个意思。这就是为什么例如您的汽车、电视等在菜单中的某处有一个"开源许可证"视图的原因。
在相关的说明中,我编写了一个工具,license-grep
该工具生成了各种语言的项目使用的各种许可证的整理列表。