Python 的 MANIFEST.in 文件中的嫁接命令是啥?
Posted
技术标签:
【中文标题】Python 的 MANIFEST.in 文件中的嫁接命令是啥?【英文标题】:What is the graft command in Python's MANIFEST.in file?Python 的 MANIFEST.in 文件中的嫁接命令是什么? 【发布时间】:2017-05-30 10:04:09 【问题描述】:我找到了一个带有 MANIFEST.in
文件的 Python 项目。我可以猜到它的大部分含义,但我不清楚该行的含义:
graft tools
【问题讨论】:
Git 本身不使用任何名为 MANIFEST 的东西(带或不带任何后缀)。 manifest 一词仅表示“列表”(参见dictionary.com/browse/manifest 的名词定义),许多程序或项目都有自己的项目特定定义或用于此类列表,但这取决于具体项目或计划。 Python 包通常有一个MANIFEST.in
文件,它是包元数据的一部分。如果您简单地告诉我们您克隆了哪个存储库,这一切都会更容易回答。
简而言之,我绊倒的部分是谷歌“找到了一些与 git 相关的东西”,但我会得到更好的建议,比如这里,它可以更清楚地推动查看 python 打包(或其他)选项。具体来说,当“manifest.in”是搜索关键字时,“not git”。感谢您的澄清。现在我知道我可以忽略该文件(暂时)。
【参考方案1】:
您可以在JoshData/pdfminer/MANIFEST.in
或openstack/deb-python-falcon/MANIFEST.in
中看到这样的文件。
这是一个使用MANIFEST.in
template的python项目
可以在项目中添加
MANIFEST.in
文件,以定义要包含在sdist
命令构建的分发中的文件列表。当
sdist
运行时,它将查找MANIFEST.in
文件并解释它以生成包含将包含在包中的文件列表的MANIFEST
文件。清单模板每行有一个命令,其中每个命令指定一组要在源分发中包含或排除的文件。
在MANIFEST
commands 中,您确实有:
graft dir
包含目录下的所有文件
见Distutils tutorial
MANIFEST.in
文件花了我一段时间才理解。 这是distutils
用来收集项目中所有文件的文件,这些文件将进入最终安装程序压缩包(分发的文件)。
【讨论】:
感谢您的明确答复。另外 - 感谢大家为问题添加了 cmets。所以,这似乎不仅仅是 git 的新手——而且还“不知道”python 打包。 @MichaelFelt:所以,它实际上是一个 Python 包? @torek 我敢打赌这个 git repo 确实是一个 python 项目。 是的,它是一个 python 项目 - cloud-init - 仅供参考。并不是真正的“问题的一部分”——正如我在问题下评论的那样:谷歌未能强调 git 可能不是最重要的关键字——显然现在我认为“manifest.in”是至关重要的关键字。 感谢您的链接和摘录,非常有用的答案以上是关于Python 的 MANIFEST.in 文件中的嫁接命令是啥?的主要内容,如果未能解决你的问题,请参考以下文章
Python 构建忽略 yaml 文件,尽管它在 Manifest.in 中指定