Nei*_*ker 102 python setuptools
"Python Distribute"指南(位于python-distribute.org,但注册已失效)告诉我包含doc/txt文件和.py文件被排除在MANIFEST.in文件中
该sourcedist文档告诉我只有sdist用途MANIFEST.in,并只包括文件指定和包含.py文件.它还告诉我使用:python setup.py sdist --manifest-only生成一个MANIFEST,但是python告诉我这个不存在
我很欣赏这些来自不同版本的python并且分发系统完全混乱,但假设我使用的是python 3和setuptools(包括分发但现在称为setuptools的新的,而不是仅用于分发工具的旧的setuptools)被重新分配并分发重命名为setuptools .....)
我正在遵循'标准'文件夹结构和setup.py文件,
MANIFEST.in吗?Jan*_*sky 100
不,你不必使用MANIFEST.in.两者,distutils并且setuptools被包括在源分发包中提到的所有文件setup.py-的模块,包Python文件,
README.txt和test/test*.py.如果这是您希望在分发包中拥有的所有内容,则不必使用MANIFEST.in.
如果要操作(添加或删除)要包含的默认文件,则必须使用MANIFEST.in.
程序很简单:
确保在您setup.py包含(通过setup参数)所有对程序运行重要的文件(模块,包,脚本......)
澄清,如果要添加一些文件或要排除的某些文件.如果两者都不需要,则无需使用MANIFEST.in.
如果MANIFEST.in需要,创建它.通常情况下,你添加有tests*/*.py文件,README.rst如果你不使用README.txt,docs如果有必要的文件,可能还有一些数据文件的测试套件.
例如:
include README.rst
include COPYING.txt
Run Code Online (Sandbox Code Playgroud)
要测试它,运行python setup.py sdist并检查在其下创建的tarball dist/.
比较今天和2年前的情况 - 情况要好得多 - setuptools是要走的路.你可以忽略这个事实,distutils有点破碎,是低水平的基础,setuptools因为你setuptools应该把这些东西藏起来.
编辑:我用最后几个项目pbr建设包分配有三个行setup.py和休息是setup.cfg和requirements.txt.无需关心MANIFEST.in和其他奇怪的东西.即使该软件包需要更多文档.见http://docs.openstack.org/developer/pbr/
Kla*_*ven 13
老问题,新答案:
不,你不需要MANIFEST.in。但是,要setuptools完成您(通常)的意思,您确实需要使用setuptools_scm,它MANIFEST.in在两个关键位置发挥作用:
sdist命令时打包所有相关文件(其中所有相关文件被定义为“源代码控制下的所有文件”)include_package_data用于将包数据包含为buildor 的一部分时bdist_wheel。(再次:源代码控制下的文件)历史上的理解MANIFEST.in是:当你没有源代码控制系统时,你需要一些其他的机制来区分“源文件”和“碰巧在你工作目录中的文件”。但是,您的项目受源代码控制(对吗??),因此不需要MANIFEST.in. 这篇文章中有更多信息。
| 归档时间: |
|
| 查看次数: |
43986 次 |
| 最近记录: |