使用Python的setup.py sdist命令打包时如何包含空目录

7

我有一个Python包,我想将一个空目录作为源分发的一部分包含在内。我尝试添加:

include empty_directory

将内容添加到MANIFEST.in文件中,但当我运行时

python setup.py sdist

空目录仍未被包含。有没有关于如何做到这一点的提示?
1个回答

13
根据文档的说明:
  • include pat1 pat2 - 包括匹配任何一个列出模式的所有文件
  • exclude pat1 pat2 - 排除匹配任何一个列出模式的所有文件
  • recursive-include dir pat1 pat2 - 包括目录下匹配任何一个列出模式的所有文件
  • recursive-exclude dir pat1 pat2 - 排除目录下匹配任何一个列出模式的所有文件
  • global-include pat1 pat2 - 包括源树中匹配任何一个列出模式的所有文件
  • global-exclude pat1 pat2 - 排除源树中匹配任何一个列出模式的所有文件
  • prune dir - 排除目录下的所有文件
  • graft dir - 包括目录下的所有文件
因此看起来你需要使用graft而不是include。此外,似乎您无法包括空目录。您必须在目录中创建一个“empty.txt”文件或类似文件以强制其包含在内。

4
这似乎是许多分布式系统的常见做法。我看到过一些类似于“empty.txt”或DELETE的东西,附有简单的注释说“这可能随时被删除”。 - Michael Herold

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接