在setuptools中修剪和递归排除之间的区别?

yun*_*que 6 egg manifest setuptools setup.py python-2.7

我正在使用setuptools打包自定义模块进行部署,该模块不应包含data/用于开发的目录中的某些文件.我已经成功地recursive-exclude data/ *在我的MANIFEST.in文件中排除了必要的文件,但我也看到我可以通过这样做prune data/

这两种方法都可以package.egg-info/SOURCES.txt在打包后从中删除目标文件python setup.py egg_info

这两者有什么区别吗?

joj*_*jek 6

基于文档行为是:

  • recursive-exclude dir pat1 pat2取目录dir,并忽略所有的模式相匹配的文件pat1pat2

  • prune dir 将排除目录中的所有文件 dir

所以在你的情况下recursive-exclude dir *,prune dir应该有相同的行为,除了prune将删除整个目录,而recursive-exclude将保留一个空文件夹.

  • 啊! 我正在查看 setuptools 文档而不是 distutils...无论如何,“recursive-exclude”似乎也摆脱了空文件夹。查看文档,我认为唯一的区别是“recursive-exclude”允许您指定文件类型,而“prune”则删除整个目录。 (2认同)