如何在 setup.py 脚本中包含许可证文件?

新手上路,请多包涵

我用 C++ 编写了一个 Python 扩展模块。我计划使用 setuptools 分发模块。将有用于 32 位和 64 位 Windows 的二进制分发版(使用 setup.py bdist_egg 构建)和类 UNIX 平台的源代码分发版(使用 setup.py sdist 构建)。

我计划在 BSD 许可下许可该模块。在我的源代码树中,文件 LICENSE.txt 与 setup.py 位于顶层文件夹中。我应该如何将它包含在安装包中?

我尝试了以下 setup.py 脚本:

 from setuptools import setup, Extension
from glob import glob

setup(
    name = 'Foo',
    version = '0.1.0',
    ext_modules = [Extension('Foo', glob('Source/*.cpp'))],
    package_data = {'': ['LICENSE.txt']}
)

它没有用,许可证文件不包含在安装包中。可能是因为 setup.py 文件没有定义任何包,只有一个扩展模块。

我该如何解决?

原文由 Johan Råde 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 302
1 个回答

编写一个 setup.cfg 文件并在其中指定:

 [metadata]
license_files = LICENSE.txt

为此,似乎需要安装轮子。那是:

 pip install wheel

如果您已经安装了 wheel 但它不起作用,请尝试更新它:

 pip install --upgrade wheel

然后,当通过 pip install <path> 安装包时,会包含 LICENSE 文件。

原文由 Al Conrad 发布,翻译遵循 CC BY-SA 4.0 许可协议

推荐问题