如何在 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 许可协议

阅读 301
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 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题