distutils:如何在源分发中包含测试文件而不在构建中?

1 投票
1 回答
1727 浏览
提问于 2025-04-16 19:09

我有一个简单的纯Python项目,想用distutils来发布。现在我已经成功创建了压缩的tar文件,里面包含了Python模块和一些许可证文本文件。这是我在setup.pysetup参数列表的相关部分:

  packages=['pkgA',
            'pkgA.subpkgA1',
            'pkgA.subpkgA2'],
  requires = ['matplotlib', 'pytest'],
  data_files = [ 'COPYING', 'COPYING.LESSER'],

唯一的问题是,这样做会把许可证文件直接放在发布包里,放在sys.prefix下面。我希望把许可证文件放在源代码的发布包里,但在运行python setup.py install时不想安装它们。目前我没有MANIFEST.in文件,也没有后续构建的操作。

1 个回答

2

你不需要在 data_files 里放任何东西。distutils.core.setup 里的参数(比如 py_modules、packages、data_files 等)决定了什么会被构建和安装。如果你想分发额外的文件,可以使用一个叫 MANIFEST.in 的文件:http://docs.python.org/dev/distutils/sourcedist#specifying-the-files-to-distribute。在这个文件里,你可以放置你的 COPYING 文件、测试用的 Python 文件,或者其他任何东西,而这些文件不会被安装。

撰写回答