distutils:如何在源分发中包含测试文件而不在构建中?
我有一个简单的纯Python项目,想用distutils来发布。现在我已经成功创建了压缩的tar文件,里面包含了Python模块和一些许可证文本文件。这是我在setup.py
中setup
参数列表的相关部分:
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 文件,或者其他任何东西,而这些文件不会被安装。