小能豆

我是否应该将 setup.py 生成的 MANIFEST 文件置于版本控制之下?

py

当我维护和分发 Python 包时,我是否应该保留该命令所包含的 MANIFEST 文件

python setup.py sdist

在版本控制下生成,还是我应该将其添加到.gitignore?


阅读 9

收藏
2024-11-14

共1个答案

小能豆

在维护和分发 Python 包时,不应将命令MANIFEST生成的文件保留python setup.py sdist在版本控制下。通常建议将其添加到您的.gitignore。原因如下:

1.文件的目的MANIFEST

MANIFEST文件由命令自动生成sdist,是源代码分发过程的一部分。它列出了分发版中应包含的所有文件,但通常不打算对其进行维护或版本控制。该MANIFEST文件的内容可能因存储库的状态而异,并且每次创建新的源代码分发版时都会重新生成该文件。

2.再生MANIFEST

MANIFEST您无需手动编辑或在版本控制下跟踪该文件,因为只要您运行该python setup.py sdist命令,它就会自动生成。如果您使用MANIFEST.in明确定义哪些文件应包含在源分发中,则生成的MANIFEST文件将反映您运行该命令时项目的内容MANIFEST.in和实际文件sdist

由于MANIFEST文件每次都会重新生成,因此无需将其保存在版本控制中,因为其内容会随着每次新的分发而改变。在版本控制中跟踪它可能会导致不必要的冲突和混乱。

3.最佳实践:添加到.gitignore

您应该将该MANIFEST文件添加到您的目录中,.gitignore以防止它被 Git 跟踪。这可确保生成的MANIFEST文件不会扰乱您的版本控制历史记录,并且无需手动更新或维护。

以下是您可以添加到您的 的内容.gitignore

# Ignore generated MANIFEST file
MANIFEST

4.版本控制中应保留哪些内容

应保留在版本控制中的文件包括:

  • 你的setup.py
  • MANIFEST.in(如果您使用它来定义明确的文件包含规则)
  • 源代码文件和其他必要的资源
  • 与您的项目相关的任何其他配置或文档文件

5.总结

  • 不要在版本控制中跟踪MANIFEST文件,因为它是由sdist命令自动生成的。
  • 添加MANIFEST到您的.gitignore以防止被跟踪。
  • 跟踪MANIFEST.in(如果您正在使用它)和其他项目文件,例如setup.py

通过遵循这种方法,您可以避免版本控制系统中不必要的混乱,同时确保包分发过程顺利进行。

2024-11-14