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
用于将包数据包含为build
or 的一部分时bdist_wheel
。(再次:源代码控制下的文件)历史上的理解MANIFEST.in
是:当你没有源代码控制系统时,你需要一些其他的机制来区分“源文件”和“碰巧在你工作目录中的文件”。但是,您的项目受源代码控制(对吗??),因此不需要MANIFEST.in
. 这篇文章中有更多信息。
归档时间: |
|
查看次数: |
43986 次 |
最近记录: |