如何在MANIFEST.in文件中的目录名中转义空格?

时间:2011-10-13 22:22:29

标签: python setuptools

我继承了一些包含嵌入空格的目录名的代码,我没有重命名目录的选项。假设目录的名称是“嵌入空格”

现在我正在尝试从MANIFEST.in文件中的这个目录中访问一些文件

我尝试了以下内容:

recursive-include 'embedded spaces' *.dat
recursive-include "embedded spaces" *.dat
recursive-include embedded\ spaces *.dat

这些都会产生错误,就像“警告:没有找到与'嵌入'目录下的'空格'相匹配的文件

我有一个解决方法

recursive-include embedded* *.dat

但我想知道在MANIFEST.in目录名中编码空格是否有一种不那么强硬的方法。

2 个答案:

答案 0 :(得分:2)

不,它不会出现。检查distutils.filelist的来源,它解析MANIFEST.in的工作表明该行纯粹是在空白上拆分以确定操作及其参数

这是源代码(在python 2,7中)

def _parse_template_line(self, line):
    words = line.split()
    action = words[0]

    ...

    if action in ('include', 'exclude',
                  'global-include', 'global-exclude'):
        ...
    elif action in ('recursive-include', 'recursive-exclude'):
        if len(words) < 3:
            raise DistutilsTemplateError, \
                  "'%s' expects <dir> <pattern1> <pattern2> ..." % action

        dir = convert_path(words[1])
        patterns = map(convert_path, words[2:])

    ...

答案 1 :(得分:0)

尝试recursive-include embedded?spaces *.dat