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.inopenstack/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 中指定

如何在没有 MANIFEST.in 文件的情况下包含 package_data?

如何将其他文件添加到***?

如何将图像添加到 Python 包索引文档中?

将数据文件添加到 python 项目 setup.py

python的项目结构