2017-03-23 31 views
1

我正在使用setuptools打包自定义模块进行部署,其中不应包含用于开发的data/目录中的某些文件。我已经成功地排除使用recursive-exclude data/ *必要的文件在我MANIFEST.in文件,但我也看到了,我可以通过prune data/setuptools中的剪枝和递归 - 排除之间的区别?

这两种方法都从package.egg-info/SOURCES.txt包装后通过python setup.py egg_info

删除预期的文件,这样做有什么区别之间他们俩?

回答

2

基础上documentation行为是:

  • recursive-exclude dir pat1 pat2需要的目录dir并忽略所有匹配的模式pat1这一点,pat2

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

因此,在您的情况下,recursive-exclude dir *prune dir应具有相同的行为,但prune将删除整个目录,而recursive-exclude将保留一个空文件夹。

+0

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