“Python Distribute”指南(位于Python-Distribute.org,但该注册已过期)告诉我包括doc/txt文件,并且.py文件不包括在MANIFEST.in文件中
sourcedist文档告诉我,只有sdist使用清单.in,并且只包含您指定的文件和包含.py文件。它还告诉我使用:python setup.py sdist--manifest only来生成清单,但python告诉我这不存在
我很欣赏这些来自不同版本的python,并且分发系统处于一个
完全混乱,但假设我使用的是python 3和setuptools(新的一个包括distribute但现在称为setuptools,而不是旧的setuptools,它被弃用为distribute工具,只会被带回distribute并重命名为setuptools…)
我遵循“标准”文件夹结构和setup.py文件
- 我需要
清单吗 - 里面应该有什么
- 什么时候所有这些不同的包装系统和方法都会变成一个简单的过程
回复:“我需要舱单吗
不,您不必使用清单。在中,distutils和setuptools都包含在源代码中
分发包setup.py-modules中提到的所有文件,包python文件,
README.txt和test/test*.py。如果这是您希望在分发包中拥有的全部内容,您可以这样做
不必使用清单.in
如果要操作(添加或删除)要包含的默认文件,必须使用MANIFEST.in
Re:里面应该装什么
程序很简单:
-
确保在
setup.py中包含(通过setup参数)您认为对程序运行很重要的所有文件(模块、包、脚本…) -
澄清,如果有一些文件要添加或一些文件要排除。如果两者都不需要,则无需使用
MANIFEST.in -
如果需要
MANIFEST.in,请创建它。通常,您会在那里添加tests*/*.py文件,README.rst如果您不使用README.txt,文档文件,如果需要,还可能会添加一些测试套件的数据文件
例如:
包含自述文件.rst
包括COPYING.txt
要测试它,请运行python setup.py sdist,并检查在dist/下创建的tarball
什么时候所有这些不同的包装系统
比较今天和两年前的情况-情况要好得多-setuptools是一条出路。你可以忽略一个事实,distutils有点不完整,是setuptools的低级基础,因为setuptools会对你隐藏这些东西
编辑:最后几个项目我使用pbr来构建带有三行setup.py的分发包,其余部分在setup.cfg和requirements.txt中。不需要关心清单.in和其他奇怪的东西。即使包需要更多的文档n、 看http://docs.openstack.org/developer/pbr/